Dll导出对话框导致内存泄露
2015-06-16 16:33
176 查看
前几天写了一个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: <<N x > 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: <<N x > 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: <<N x > 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: <<N x > 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: <<N x > 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的。
调整一致后,发现内存泄露提示没有了。
在另外一个工程里使用此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: <<N x > 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: <<N x > 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: <<N x > 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: <<N x > 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: <<N x > 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的。
调整一致后,发现内存泄露提示没有了。
相关文章推荐
- ubuntu安装chrome
- 解决找不到动态库libpthread.so
- 使用OpenCVC随机森林
- 协同过滤推荐算法
- java TreeMap的用法
- sigaction 用法实例
- Spring后台,通过name取值
- OC2_点语法(属性关键字)
- 协同过滤推荐算法
- C#连接Oracle数据库查询数据
- 数据库设计范式的理解
- ANT-BUILD.XML
- android 开机不弹出Launcher选择,直接进入需要默认的Launcher,
- OC1_点语法
- JAVASE学习笔记:第十一章 数据流
- 约瑟夫问题 数组(最好还是用循环指针)
- 因需要Win7系统如何更改另一个账户密码
- RTTI symbol not found for class 'QWidget'
- 接口测试-自动化-Java实现-Constants.java/RecordStore.java
- C++ 动态创建按钮及 按钮的消息响应