在同一解决方案中具有不同处理器体系结构的DLL会抛出错误的图像格式异常

时间:2019-02-02 12:23:12

标签: dll

我正在用c#开发Windows应用程序。我必须从另一个项目向我的项目中添加一个DLL。

我尝试导入的DLL是“处理器架构x 86”。在我的项目中,我有一个“处理器架构x 64”的DLL。

当我执行项目时,它将引发错误的图像格式异常。在将DLL导入到项目中之前,它在平台目标“ Any CPU”中运行良好。现在,它引发一个异常。我该如何解决?

1 个答案:

答案 0 :(得分:0)

不,这是不可能的。 x64进程必须使用x64 DLL,而x86进程必须使用x86 DLL。如果您的操作系统是64位,则所有32位进程都在Wow64仿真下运行。您不能将64位DLL放入该进程,因为它无法在模拟器下正确运行。同样,如果您的进程是64位的,则您的进程中将没有32bit的DLL,因为仿真器无法在进程中部分执行。

您必须将DLL构建为与进程相同的体系结构。