繁体   English   中英

在64位C#应用程序中使用32位CabExtract库提取cab文件

[英]Extracting cab file with 32 bit CabExtract library in 64bit C# application

最近,我正在用64 bit C# application CabExtract (用C编写)提取cab文件。 该库在32位应用程序中运行时运行良好,但是在64位应用程序中使用相同的库时,它将引发以下异常:

从cabExtract.dll导入已通过以下方式实现:

[DllImport("cabExtract.dll", EntryPoint="ExtractCabBegin", CharSet=CharSet.Unicode, ExactSpelling=true)]
internal static extern int ExtractCabBegin();

异常:System.BadImageFormatException

消息:试图加载格式错误的程序。 (来自HRESULT的异常:0x8007000B)

我怀疑CabExtract库支持32位。但是我还没有找到64位的CabExtract库。 所以,我的问题是:

它将能够使用64位托管应用程序中的32位非托管库吗? 如果是,该怎么办?

它将能够使用64位托管应用程序中的32位非托管库吗? 如果是,该怎么办?

不行,这是不可能的。 64位进程只能加载64位模块。 32位进程只能加载32位模块。

您链接到的库作为源提供,并受LGPL许可证的保护。 只要您遵守该许可证,就可以将代码编译成64位DLL,并在64位进程中使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM