关于Dll内存泄漏的问题
昨天使用BoundsChecker发现的,64Byte的内存泄漏。只要用AppWizard生成最简单的MFC扩展DLL,加入一个最简单的Generic Class,输出这个Class,并在一个App中使用,就会有这个现象。提示由于在DllMain函数中的new CDynLinkLibrary(LeaktestDLL);没有释放造成的。但是如果换成MFC Class就没有问题了,不知何解?(VC6,BoundsChecker6.5)
另外,不管用哪种类,都会有资源泄漏,提示由于..MFC\SRC\DLLINIT.CPP中 HINSTANCE hLangDLL = LoadLibraryA(szLangDLL);引起,这又是怎么回事儿呢?(David自己写的程序居然也有这个现象!)
问题点数:100、回复次数:6Top
1 楼kkk16()回复于 2002-02-20 11:40:34 得分 20
你的VC有问题或者BoundsChecker有问题Top
2 楼mikesee(信手涂鸦)回复于 2002-02-25 09:26:54 得分 0
VC有问题或者BoundsChecker有问题?
只是这样说还是不能服人吧?
100分怎么没有人回答呢?Top
3 楼xghome(东楼)回复于 2002-02-25 09:41:57 得分 60
你的类前面加了AFX_EXT_CLASS输出标志了吗?
应该没有问题,我没有使用BoundsChecker,但是我自己的类库都是这么写得,别介意,就我所知,小于4k的内存泄漏都可以不予理会的,因为实际上,内存碎片产生的空洞也比这个大得多,只要你自己的代码保证把申请的内存都释放了,就可以了。Top
4 楼pigczc(肥暗堂)回复于 2002-02-25 09:42:03 得分 20
都没问题,dll输出的这个class, 在app中使用后释放了吗?
Top
5 楼mikesee(信手涂鸦)回复于 2002-02-25 14:19:41 得分 0
AFX_EXT_CLASS标志加了,class也释放了。如果不用BoundsChecker,用VC6检测不到任何错误,所以更是觉得奇怪。Top
6 楼mikesee(信手涂鸦)回复于 2002-02-25 14:21:27 得分 0
另外,我把帖子移动了一下,分变成1了,现在补上,本问题100分。Top
7 楼mikesee(信手涂鸦)回复于 2002-03-01 10:30:18 得分 0
真的没有人知道吗?
我在C++区也有这个帖子,一共就是200分了……Top




