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

Geo*_*ton 3 c# c++-cli wrapper

我创建了一个C++/CLI程序集,它创建了一个围绕本机C++代码的包装器.当我将它作为资源添加时,资源编译和程序集加载到我的C#项目中.我可以从我的应用程序中访问我的对象和intellisense,但是在尝试构建时,它会崩溃并出现异常:

BadImageFormat

无法加载文件或程序集"MyCLI,Version = 1.0.3680.28432,Culture = neutral,PublicKeyToken = null"或其依赖项之一.尝试加载格式不正确的程序.

我将它加载到我的表单加载事件:

MyCLI.myCLI z;
Run Code Online (Sandbox Code Playgroud)

...当我编译时,它在我在C#中的主构造函数中的这一行崩溃

Application.Run(new Form1());
Run Code Online (Sandbox Code Playgroud)

有没有人知道可能导致此异常的原因?

谢谢

Han*_*ant 8

您正在尝试在64位操作系统上运行此代码.您的C#代码将很好地编译为64位机器代码.但是当它试图加载32位C++/CLI程序集时,你会碰壁.

在C#项目中,使用Project + Properties,Application选项卡,Platform Target = x86.也可以使用Build + Configuration Manager创建64位版本的C++/CLI程序集.使用Platform Target是更好的解决方案.