anv*_*nve 10 clr multithreading boost c++-cli boost-thread
使用Visual Studio 2008和Boost库1.46.1我想用/ CLR标志编译和链接以下内容:
#include <boost/thread/thread.hpp>
void run() {}
int main(int argc, char *argv[])
{
    boost::thread t(run);   
}
第一个错误是关于boost :: thread中的前向声明的伪结构.这篇文章 通过声明:
namespace boost {
    struct thread::dummy {};
}
当然,我现在可以编译,但后来我得到链接器警告
警告1警告LNK4248:'boost.detail.win32._SECURITY_ATTRIBUTES'的未解析的typeref标记(0100001F); 图像可能无法运行
运行应用程序导致
应用程序无法正确启动(0xc000007b).
前面提到的论坛帖子中的所有建议都不适合我.我已经构建了Boost Threads lib的静态版本,它运行正常,没有/ CLR标志.调试/发布没有区别.我在Win7 32位下运行.
任何提示?
我已经遇到了这个问题,我不记得从哪里得到这个问题,但一种解决方法是在包含所有 boost 标头后声明“boost.detail.win32._SECURITY_ATTRIBUTES”。
namespace boost { 
    namespace detail { 
        namespace win32 { 
            struct _SECURITY_ATTRIBUTES: public ::_SECURITY_ATTRIBUTES {}; 
        };
    };
}; 
如果您希望每个人都能看到命名空间,请删除它。