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

Roo*_*aur 6 .net c# c++ 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放在应放置的位置,并确保它们都匹配)。我可能会错过任何陷阱吗?

Onl*_*ind 5

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

右键单击您的解决方案> Configuration Manager。

要么

生成>配置管理器

在此处输入图片说明

在配置管理器中,更改所有项目以在x86或ANy CPU中进行编译,请同时尝试两者。

在此处输入图片说明

  • 谢谢,这个问题似乎在外部库中更进一步了,您对所有依赖项的建议都做了。 (2认同)
  • 您只需将 EXE 的平台更改为“x86”! (2认同)