簡體   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