|
我按照帖子(http://www.osgchina.org/bbs/view ... hlight=%D0%B9%C2%B6)的设置:
1 到工程设置里找到 配置属性->常规->MFC的使用 设置为"使用标准Windows库"
2 在c/c++ ->预处理器 里面的预处理器定义里面加入 _AFXDLL
3 在链接器->输入->附加依赖项 里面的开始位置加入VS的库,这些库在VS2005的
安装目录下面的 VC\atlmfc\lib,加了 mfc80d.lib 和mfcm80d.lib
结果还是存在内存泄漏,不知道怎么回事。最后的显示是:
Detected memory leaks!
Dumping objects ->
f:\rtm\vctools\vc7libs\ship\atlmfc\src\mfc\plex.cpp(29) : {1167} normal
block at 0x01C1FA58, 124 bytes long.
Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 98 F8 C1
01
{1166} client block at 0x01C1F9F8, subtype c0, 32 bytes long.
a CDocManager object at $01C1F9F8, 32 bytes long
f:\rtm\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(141) : {1165}
normal block at 0x01C1F940, 119 bytes long.
Data: < >xf f > EC 97 3E 78 66 00 00 00 66 00 00 00 01 00 00
00
e:\学习相关\osg相关\例子程序
\ramblesystem\ramblesystem\ramblesystem.cpp(69) : {1164} client block
at 0x01C1F898, subtype c0, 108 bytes long.
a CSingleDocTemplate object at $01C1F898, 108 bytes long
f:\rtm\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(141) : {1162}
normal block at 0x01C1F840, 23 bytes long.
Data: < >x > EC 97 3E 78 06 00 00 00 06 00 00 00 01 00 00
00
f:\rtm\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(141) : {1161}
normal block at 0x01C1F7E0, 33 bytes long.
Data: < >x > EC 97 3E 78 10 00 00 00 10 00 00 00 01 00 00
00
{1160} normal block at 0x01C1F790, 20 bytes long.
Data: < >x >x >x> 04 00 00 00 00 98 3E 78 00 98 3E 78 00 98 3E
78
{1159} normal block at 0x01C1F730, 32 bytes long.
Data: <$R x > 24 52 1E 78 04 00 00 00 94 F7 C1 01 F0 F7 C1
01
Object dump complete.
程序“[508] RambleSystem.exe: 本机”已退出,返回值为 3 (0x3)。
是不是有什么地方不对的,请高手帮忙看看吧,谢谢!
还有个问题,是不是OSG和MFC结合使用的时候实际上没有内存泄漏,只是编译器
的问题? |
|