我在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)? –