c# - C++/CLI/C# BadImageFormat 加载表单时出现异常

标签 c# c++-cli wrapper

我创建了一个 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/

相关文章:

c# - 为什么 C# 不允许像 C++ 这样的非成员函数

java - 为什么某些 Java 包装类的名称与其原始类型不同?

plugins - 在Qt5中使用Qt4小部件,无需重新编译

c++ - 类型 ** 的包装器的数组订阅运算符的返回类型是 *&?

c# - 如何在 Visual Studio 2010 中调试从另一个进程启动的 C# .NET 应用程序

visual-studio-2010 - 异常 HRESULT : 0x800700C1 when executing c# application referencing native c++ lib with boost

c# - 在 asp.net C# 中过滤数据集

c# - 使用互操作将整数数组从 C# 传递到 native 代码

C# - 在 block 末尾自动释放内存

c# - 在 MVC View 上显示按标题分组和分隔的数据表