C++/Cli:无法加载文件或程序集X或其依赖项之一.不是有效的Win32应用程序.(HRESULT异常:0x800700C1)

Seç*_*gay 7 boost c++-cli boost-thread

我有一个C++项目,一个C++\Cli项目和一个ac#win forms项目.
当我从win forms项目访问cli项目时,我可以访问和使用cli项目功能.但是当我将我的cpp项目头包含到cli项目中时,当我访问cli项目时,我从c#项目中得到这个运行时错误.

  CliWrapper.Func meta = new CliWrapper.Func();
Run Code Online (Sandbox Code Playgroud)

这是我犯的错误:

BadImageFormatException:无法加载文件或程序集X或其依赖项之一.不是有效的Win32应用程序.(HRESULT异常:0x800700C1)

我意识到#include <boost/thread.hpp>导致问题

Seç*_*gay 5

我找到了解决方案:

http://marc.info/?l=boost-users&m=123425857320026

在配置属性 -> C/C++ -> 预处理器 -> 预处理器定义中添加 BOOST_ALL_DYN_LINK 以强制使用 DLL。此外,将必要的 DLL 复制到可执行文件所在的目录。例如,将 boost_thread-vc90-mt-gd-1_XX.dll 复制到 MyApp/bin/Debug。