C# 加载本机dll时引发ExecutionEngineeException

C# 加载本机dll时引发ExecutionEngineeException,c#,.net,interop,native,executionengineexception,C#,.net,Interop,Native,Executionengineexception,我有一个使用本机32位DLL的32位.net应用程序 通过DllImport()。本机DLL是我们的内部文件分析库,我需要使用它,因为将其移植到C#会有问题,如果人们更新它(其他软件使用它) 问题是,当我尝试执行本机DLL中的任何方法时,会抛出一个System.executionEngineeException。事实上,我已经将托管应用程序简化为一个只调用本机方法的简单测试程序,但它仍然失败 我使用的是64位Windows 7,但这并不重要,因为我正在将所有内容编译为32位二进制文件 同样有趣的

我有一个使用本机32位DLL的32位.net应用程序 通过DllImport()。本机DLL是我们的内部文件分析库,我需要使用它,因为将其移植到C#会有问题,如果人们更新它(其他软件使用它)

问题是,当我尝试执行本机DLL中的任何方法时,会抛出一个System.executionEngineeException。事实上,我已经将托管应用程序简化为一个只调用本机方法的简单测试程序,但它仍然失败

我使用的是64位Windows 7,但这并不重要,因为我正在将所有内容编译为32位二进制文件


同样有趣的是,当我在Dependency Walker中查看本机DLL时,它显示它找不到msvcr90.DLL-但是当我在Dependency Walker中打开任何其他本机DLL时,它可以很好地找到它们引用的msvcr90.DLL。在编译本机DLL时出现了一些错误,会导致DLL引用混乱吗?

好的-问题有点模糊。显然,一个同事修改了DLL本地的方法来包含一个缺省值(C++处理得很好),但是,我们知道,<强> C 3.5不为< /强>。在为该参数提供了一个值之后,一切正常

好的-问题有点模糊。显然,一个同事修改了DLL本地的方法来包含一个缺省值(C++处理得很好),但是,我们知道,<强> C 3.5不为< /强>。在为该参数提供了一个值之后,一切正常