我创建了一个 C++/CLI 程序集,它创建了一个围绕 native C++ 代码的包装器。当我将它作为资源添加时,资源编译并且程序集很好地加载到我的 C# 项目中。我可以从我的应用程序中访问我的对象和智能感知,但是在尝试构建时,它崩溃了,但出现以下异常:
错误的图像格式
Could not load file or assembly 'MyCLI, Version=1.0.3680.28432, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format.
我将它加载到我的表单加载事件中:
MyCLI.myCLI z;
...当我编译时,它在我的 C# 主构造函数中的这一行崩溃
Application.Run(new Form1());
有没有人知道可能导致此异常的原因?
谢谢
最佳答案
您正在尝试在 64 位操作系统上运行此代码。您的 C# 代码将很好地编译为 64 位机器代码。但是当它尝试加载 32 位 C++/CLI 程序集时,您会碰壁。
在 C# 项目中,使用项目 + 属性、应用程序选项卡、平台目标 = x86。也可以创建 64 位版本的 C++/CLI 程序集,使用 Build + Configuration Manager。使用 Platform Target 是更好的解决方案。
关于c# - C++/CLI/C# BadImageFormat 加载表单时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2159494/