您的位置:首页 > 其它

动态库,接口参数,STL类型,资源释放失败

2009-06-08 17:18 351 查看
这段时间,在工程中将一些功能封装成动态库,需要使用动态库接口的时候.使用了STL的一些类型作为参数.

比方string,vector,list.但是在使用接口的时候.

class exportClass

{

bool dll_funcation(string &str);

};

//上面这个类只是一个形式,具体内容不写出来了.这个类被导出

当我在使用这个库的时候.这样写代码:

string str="":

exportClass tmp;

tmp.dll_function(str);

这个函数能成功调用.但是在函数里面会给这个数组附值.如果字符串太长,就会出错.函数调用能成功,但是一旦str资源需要释放的时候,资源就不能释放了,提示释放了错误的内存空间.

一点一点取掉这个函数的代码.最后就剩下

str="qadasdasdasdsafsafas";

还是出错误.

如果改成很短的字符串,就不会出错误.

在这个时候,只能尝试认为是字符串的空间太小

最终我修改成这样,错误消失了.希望错误真的是这个引起的

string str="":

str.resize(1000);

exportClass tmp;

tmp.dll_function(str);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐