[英]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.