我有一个C#程序,我使用x64计算机上的所有默认设置进行编译。
我想p /调用一个我知道是32位(非托管)C ++ DLL的DLL。
当我的C#程序在32位计算机上运行时,我可以使用它,但不是64位计算机。
如何在DllImport调用中指定我调用32位dll?
我现在拥有的例子:
[DllImport("test32bitdll.dll", SetLastError=true)]
public static extern void MyFunc();
我没有test32bitdll.dll文件的源代码。
答案 0 :(得分:7)
无法在64位进程中运行32位非托管代码。或者相反。您可以选择的选项:
第三个选项可以为你提供最大的收益,但如果交换了大量数据并且往往很脆弱,它可能会很慢。处理代理过程的失败可能很困难。
答案 1 :(得分:6)
最简单的方法是将你的exe改为“仅限x86”。