在C#应用程序中使用C ++ / CLI时出现BadImageFormatException

时间:2014-04-25 14:27:02

标签: c# c++ .net dll c++-cli

我目前正在VS 2008中开发一个应用程序,其中我有一个非托管C ++库(A),它包含两个现有库(B + C)以简化功能。 (A)已证明有效,我可以在c ++测试应用程序中成功调用和使用它。

(A)的主要目的是由C#应用程序使用,为了做到这一点,我遵循以下链接:http://blogs.msdn.com/b/borisj/archive/2006/09/28/769708.aspx来创建CLI包装器(D)。

一切似乎都很好,一切都在编译,我试图在一个简单的C#应用​​程序中测试它。我添加了对(D)的引用并启动程序只是为了在尝试使用该类时接收BadImageFormatException。根据我的阅读,人们建议在某些地方的DLL中存在容器不匹配,但是我已经在Win32中将它们全部构建为相互匹配。

除此之外,我还提供了(D)和C#应用程序所需的所有DLL的副本,但似乎仍然存在问题。我注意到在编译时没有为(D)创建一个dll,这是我猜测它为什么会崩溃的原因,但是我是新手,我不知道它是否应该。

我是否可能没有在我忽略的某个地方包含一个导致此问题的DLL?

TLDR:A包装B + C,A由D包装以在C#应用程序中使用,但它会命中并发生异常。 (我已将所有DLL放在他们应该去的地方(据我所知)并确保它们都匹配)。有没有我可能错过的陷阱?

1 个答案:

答案 0 :(得分:4)

尝试将编译模式更改为x86或任何CPU模式。

右键单击解决方案>配置管理器。

构建>配置管理器

enter image description here

在Configuration Manager中更改要在x86或ANy CPU中编译的所有项目,同时尝试两者。

enter image description here