前几天写了一个dll,可以导出对话框
在另外一个工程里使用此dll时,运行一切正常
退出时,VC提示有内存泄露
{483} client block at 0x003A87B0, subtype c0, 64 bytes long.
a CDynLinkLibrary object at $003A87B0, 64 bytes long
a CDynLinkLibrary object at $003A87B0, 64 bytes long
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(141) : {478} normal block at 0x003A8628, 22 bytes long.
Data: < 3C 4E A4 78 05 00 00 00 05 00 00 00 01 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(141) : {477} normal block at 0x003A85D0, 22 bytes long.
Data: < 3C 4E A4 78 05 00 00 00 05 00 00 00 01 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(141) : {476} normal block at 0x003A8570, 34 bytes long.
Data: < 3C 4E A4 78 11 00 00 00 11 00 00 00 01 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(141) : {475} normal block at 0x003A8518, 28 bytes long.
Data: < 3C 4E A4 78 0B 00 00 00 0B 00 00 00 01 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(141) : {474} normal block at 0x003A84C0, 24 bytes long.
Data: < 3C 4E A4 78 07 00 00 00 07 00 00 00 01 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(141) : {473} normal block at 0x003A8468, 22 bytes long.
只能看出来和字符串有关,上网找了半天也没找到答案
后来无意中发现dll的字符集和exe工程的字符集不一致,一个是多字节的(Multibyte),另一个是Unicode的。
调整一致后,发现内存泄露提示没有了。
阅读(5939) | 评论(0) | 转发(0) |