内存泄漏的问题!?高分!!

yu1928 2003-09-29 06:02:51
static AFX_EXTENSION_MODULE extensionDLL;
extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
// Extension DLL one-time initialization
if (!AfxInitExtensionModule( extensionDLL, hInstance))
return 0;
// TODO: perform other initialization tasks here
//***********
new CDynLinkLibrary(extensionDLL);
//***********
}
else if (dwReason == DLL_PROCESS_DETACH)
{
// Extension DLL per-process termination
AfxTermExtensionModule(extensionDLL);
// TODO: perform other cleanup tasks here
}
return 1; // ok
}

***************************
new CDynLinkLibrary(extensionDLL); 这句话new出来的对象需要释放吗?为什么?

小弟初学者,请多指教,先谢过啦!
...全文
101 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bandry 2003-09-30
  • 打赏
  • 举报
回复
你做的不是MFC应用程序而是DLL吧
我记得有些函数是由调用者来释放资源的,也许这里就是这样。
yu1928 2003-09-30
  • 打赏
  • 举报
回复
还有没有更详细一些的解释!?
bluebohe 2003-09-29
  • 打赏
  • 举报
回复
gz
yu1928 2003-09-29
  • 打赏
  • 举报
回复
不是很明白楼上的说法,能详细的解释一下吗?
FlyYang 2003-09-29
  • 打赏
  • 举报
回复
在AfxTermExtensionModule里面释放

用new CDynLinkLibrary(testdllDLL);的时候要注意
下面是微软的解释

注意:如果此扩展 DLL 由MFC 规则 DLL(如 ActiveX 控件)隐式链接到而不是由 MFC 应用程序链接到,则需要将此行从 DllMain 中移除并将其放置在一个从此扩展 DLL 导出的单独的函数中。使用此扩展 DLL 的规则 DLL 然后应显式调用该函数以初始化此扩展 DLL。否则,CDynLinkLibrary 对象不会附加到规则 DLL 的资源链,并将导致严重的问题。

---------
++C++
---------
yu1928 2003-09-29
  • 打赏
  • 举报
回复
这个VC 的classwizard 自己生成的,所以我不明白!
xtmzl 2003-09-29
  • 打赏
  • 举报
回复
动态分配,肯定要啊
不过你的做法有问题,左边怎么没有指针变量??

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧