代码之家  ›  专栏  ›  技术社区  ›  Axarydax

加载本机dll时引发ExecutionEngineeException

  •  1
  • Axarydax  · 技术社区  · 14 年前

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

    问题是,当我尝试执行本机dll中的任何方法时,会得到 系统执行工程例外 投掷。实际上,我已经将托管应用程序简化为一个简单的测试人员,它只调用本机方法,但仍然失败。

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

    有趣的是,当我在依赖性遍历器中查看本机dll时,它显示它找不到msvcr90.dll-但是当我在依赖性遍历器中打开任何其他本机dll时,它可以找到它们引用的msvcr90.dll。在编译本机dll的过程中,是否会有一些错误导致它的dll引用混乱?

    1 回复  |  直到 9 年前
        1
  •  1
  •   Axarydax    14 年前

    好的-问题有点模糊。显然,一个同事修改了原生DLL的方法来包含一个缺省值的参数(C++处理得很好),但是,正如我们所知, C 3.5不 . 在为该参数提供了一个值之后,一切都运行良好!