|
蓝森林 http://www.lslnet.com 2006年6月6日 10:18
boost::any 在跨模块使用时,难道有BUG?
boost::any 在跨模块使用时,难道有BUG?
在我的一个DLL里,有一个类如下:
class MyClass
{
...
boost::any m_var;
}
在DLL被装载的时候会new 一个MyClass(比如pMyClass), 卸载DLL时会 delete 掉它。
另外DLL有一个接口,如下:
void SetVar(boost::any & anyValue)
{
pMyClass->;m_var = anyValue;
}
运行效果:
当程序退出,卸载DLL,delete pMyClass时会出错。错误的地点是boost::any的析构函数,如下:
...
class any
{
...
~any()
{
delete content; // 出错,0xC0000005错误。
}
...
}
...
我使用any时,没使用任务指针,所以BOOST应该要我们保证不会出现问题。但却会出人意料的在BOOST内的代码里出现错误,真是不明白。大家有没有遇到这种情况的?
我的环境:
windows 2000 pro sp4
vc6 sp5
boost 1.31 |
| |