![](/img/trans.png)
[英]How can I use P/Invoke to call a 64-bit C++ DLL from a 64-bit C# Application?
[英]Need 64-bit SQLite DLL for managed C# application
我试图将SQLite嵌入我的便携式C#.NET 2.0应用程序中,而不是将DLL文件包含在分发文件夹中。 但是,要嵌入SQLite,我不能使用PHXSoftware提供的混合模式库。 相反,我使用的是“仅限托管”版本。
这在32位计算机上可以正常运行,但是在64位计算机上运行时会引发格式异常。 我从这里发现: http ://sqlite.phxsoftware.com/forums/p/2564/9939.aspx在使用托管库之前,我需要先以所需的体系结构格式手动加载非托管的sqlite3.dll。
那就是我不足的地方。 我找不到要包含的32位SQLite的64位版本。 有人可以帮忙吗? 我敢说,有人有更好的主意吗?
我建议您自己构建源。 这很简单。 特别是考虑到Sqlite提供合并源 。
这是我用于64位版本构建的编译器预处理器定义:
这是我用于32位发行版的编译器预处理器定义:
该System.Data.SQLite叉具有在x86 / x64二进制文件的.Net 2,3.5和4.下载是这里 。
更新:
另一种可能的解决方案是将您的应用程序针对x86平台,而仅使用x86 SQLite库。 如果您的应用程序不需要针对x86平台的x64功能,则将大大降低部署的复杂性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.