调用dll的时,在dll内部申请的内存,如何自动回收内存

我现在写dll程序的时候一般都是包括申请,运行,释放内存这三个函数。不过我看有人就一个dll,说在dll内部就实现了管理内存释放(申请我知道),不用手动调用释放函数,请问... 我现在写dll程序的时候一般都是包括申请,运行,释放内存这三个函数。不过我看有人就一个dll,说在dll内部就实现了管理内存释放(申请我知道),不用手动调用释放函数,请问这个是如何实现的? 展开
 我来答
neusoft_monk
2013-01-30 · TA获得超过2130个赞
知道小有建树答主
回答量:469
采纳率:75%
帮助的人:129万
展开全部
每个DLL在加载和释放都会调用DLLMAIN函数。
如下面代码所示加入申请和释放代码,就不需要你手动调用申请释放函数,系统会自动调用这两个函数。

////////////////////////////////////////////////////////////////////////////////////////////////////////////

BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
if( ul_reason_for_call == DLL_PROCESS_ATTACH )
{
return fnDLL_PROCESS_ATTACH();
}
if( ul_reason_for_call == DLL_PROCESS_DETACH )
{
return fnDLL_PROCESS_DETACH();
}
return TRUE;
}
#endif

int fnDLL_PROCESS_ATTACH()
{

// 加入申请内存代码

return TRUE;
}

int fnDLL_PROCESS_DETACH()
{
// 加入释放内存代码

return TRUE;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式