http://blog.csdn.net/treaturebeauty/article/details/1710697(原帖)

detect memory leak!

f:/rtm/vctools/vc7libs/ship/atlmfc/src/mfc/strcore.cpp(141)   ......

查看output窗口,程序中不知何时出现了内存泄露的问题。经过一阵排查,发现是由于一个函数在两个模块中的字符串参数类型定义不一致引起的。该函数实现在EXE中,参数定义为BSTR,在DLL中进行调用(回调喽),DLL中将函数原型参数定义为CString。这样一来编译器是无法发现问题的。
想必是DLL原本传了一个CString过去,中途mfc发现需要转换成BSTR,于是只好苦水往肚里咽,偷偷分配了一块内存,变成了BSTR,临了也没人知道那块内存要释放。
posted on 2012-09-28 09:57  瓦楞球  阅读(5258)  评论(0编辑  收藏  举报