我在C#中使用C++類庫和Windows應用程序。從C#中加載C++類庫(64位)
它適用於32位Windows,但不適用於64位Windows - BadImageFormatException
發生。
我試圖改變C++類庫的平臺,但它不能從WIN32更改爲WIN64。
我認爲下列問題之一可以解決這個問題。
- 有沒有辦法將WIN32庫轉換成WIN64庫?
- 是否有另一種方法可以在不使用C++庫的情況下在C#上調用C++函數?
- 是否可以在64位應用程序中加載WIN32庫?
我在C#中使用C++類庫和Windows應用程序。從C#中加載C++類庫(64位)
它適用於32位Windows,但不適用於64位Windows - BadImageFormatException
發生。
我試圖改變C++類庫的平臺,但它不能從WIN32更改爲WIN64。
我認爲下列問題之一可以解決這個問題。
有沒有辦法將WIN32庫轉換成WIN64庫?
將庫重建(重新編譯)爲64位庫。
是否可以在64位應用程序中加載WIN32庫?
號從Programming Guide for 64-bit Windows:
... 32位進程無法加載64位DLL用於執行,和64位進程無法加載32位DLL用於執行。
除非您特別需要使用64位CLR,否則您可以編譯爲32位而不是AnyCPU。 WOW在x64 Windows上運行32位應用程序做得相當不錯。 –
你是怎麼從你的C#代碼中調用C++庫的?你看過[PInvoke](http://msdn.microsoft.com/en-us/library/aa288468(v = vs.71).aspx)? –