使用USES_CONVERSION出现stack overflow错误

来源:互联网 发布:jstor数据库怎么查询 编辑:程序博客网 时间:2024/05/17 14:26

解决方案原文地址:http://blog.csdn.net/nanfeiyannan/article/details/7475124

使用USES_CONVERSION时,当调用次数频繁过多时,出现stack overflow错误

查过知道原因:使用USES_CONVERSION,从堆栈上分配内存,直到调用它的函数返回,该内存不会被释放。因此如果在一个循环中,这个宏被反复调用几万次,将不可避免的产生stackoverflow。

后来将其设置了独立的转换小函数,每次需要转换时对其进行调用即可

void Convert(CString oldstring,char *& newstring){USES_CONVERSION;strcpy(newstring,W2A(oldstring));}


0 0