蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程


    

蓝森林 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



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com