我有一个使用本机32位DLL的32位.net应用程序 通过DllImport()。本机DLL是我们的内部文件分析库,如果人们更新它(其他软件使用它),我需要使用它将它移植到C#会有问题。
问题是,当我尝试在本机DLL中执行任何方法时,我会抛出 System.ExecutionEngineException 。事实上,我已经将托管应用程序简化为一个只调用本机方法的简单测试程序,但它仍然失败。
我使用的是64位Windows 7,但这并不重要,因为我将所有内容编译为32位二进制文件。
有趣的是,当我查看Dependency Walker中的本机DLL时,它显示它无法找到msvcr90.dll - 但是当我在Dependency Walker中打开任何其他本机DLL时,它可以找到他们引用的msvcr90.dll就好了。在本地DLL的编译中是否有一些错误会弄乱它的DLL引用?
答案 0 :(得分:1)