【发布时间】:2011-08-05 22:17:53
【问题描述】:
我正在为 64 位开发 Visual Studio 2008 C#,我想使用一个使用 boost 的库。所以我用 C++/CLI 写了一个包装器。我设法解决了我遇到的错误
#include <boost/thread/mutex.hpp>.
如果我在我的 C++/CLI 包装器中包含任何本身包含 <boost/thread/mutex.hpp> 的文件,或者如果我将它直接包含在包装器中,我会收到“System.AccessViolationException”“试图读取或写入受保护的内存。这通常是表明其他内存已损坏。”
我在为 64 位构建所有东西时非常小心,所以我怀疑问题是否存在。当我在“普通”C++ 中使用 64 位相同的库时,一切正常。我遇到了一些帖子,人们似乎对 boost 线程有类似的问题,但我发现的解决方案都没有奏效。有人有想法吗?
【问题讨论】:
-
你的意思是
boost::asio是一个使用boost::thread的库吗?无论如何,一旦我确实想使用boost::asio并最终在我的一个本地小库中使用winsock 以由C++/Cli 包装。很抱歉,boost不是直接接触 C++/Cli 的正确库。尽量避免。
标签: multithreading boost 64-bit c++-cli mutex