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

时间:2010-01-29 02:23:27

标签: c# c++-cli wrapper

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

BadImageFormat

  

无法加载文件或程序集   'MyCLI,版本= 1.0.3680.28432,   Culture = neutral,PublicKeyToken = null'   或其中一个依赖项。一次尝试   是用来加载程序的   格式不正确。

我将其加载到表单加载事件中:

MyCLI.myCLI z;

...当我编译时,它在C#

中的主构造函数中崩溃了
Application.Run(new Form1());

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

由于

1 个答案:

答案 0 :(得分:8)

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

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