上次问那个vector的释放问题,在trust和bihai的指点下,delete了2次的问题已经
解决了.但是程序依然报错,查了无数资料,加了很多检查的代码,找来找去,发现是跨dll
调用时,map的析构问题
类中有一个这样的数据:
class testGA
{
map params;
....
};
由于需要读取文件才能知道长度,因此调用的地方
直接 this->params.insert(make_pair(string1,string2));
因为我这个dll提供了很多功能,其他功能挨着测试过去,
最后才发现是功能执行完deallocate的时候::~pair出错了
有人说不能跨dll传递stl对象,可是我的map不是指针,没有new出来
所以也没办法在析构函数中delete,如果在析构时用this->params.clear()也会报错
有人说dll分配内存,哪里分配,哪里释放.为什么在析构函数中clear map也会出错?(
testGA::testGA();和testGA::~testGA();在同一个文件中)
这是在修改别人的程序,原来是用c写的,移植过来全是问题,