您的位置:首页 > 其它

一个关于dll导出类的对象指针的delete问题

2010-08-19 17:18 162 查看
今天下午的几个小时除了沉浸于分析视频流外,还遇到了一个让我头大的问题就是:在delete从dll导出类定义的对象指针的时候失败了,内存泄露,内存泄露是我踏入社会这几个月来最常见的问题了。用java,c#习惯后,突然搞C++,内存会让你头大无语,终于没找到问题所在,只能找解决方案了,穷举了下:终于决定采用在dll中增加两个全局函数然后将这两个全局函数导出,同过在调用的工程中调用这两个函数。其中一个函数返回一个对象指针,另外一个函数当然是对该指针的释放了,不用说,这种方式搞定了,不过仍然不晓得为什么在调用工程中delete会失败。继续观察中 。。。

周末的时候又重新写了个小程序测试,似乎没出现内存泄露,甚是郁闷 。。。

先记录下我那个时候的解决方案吧:

通过在dll打出类中添加了两个全局函数:

比如说:

void CreateInstancePtr(void **,void *arglist);

void FreeInstancePtr(void **);

有人会问为啥用void **这主要是为传递过来的指针new一个对象,所以必须用指针的指针才行 。好了,写到这里吧,根本问题确实没发现,还需耐心观察 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: