什么是资源泄漏???

Dekn 2004-07-06 11:23:14
难道是内存泄漏??
...全文
302 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shadowWind 2004-09-01
  • 打赏
  • 举报
回复
mark
pmwin 2004-07-06
  • 打赏
  • 举报
回复
包括很多啊,内存,图形设备接口资源等
蒋晟 2004-07-06
  • 打赏
  • 举报
回复
资源通常指系统的对象。例如GDI对象句柄、内存句柄等等。一些分配和复制的操作函数的文档中说明了调用者需要用一些代码释放函数分配的资源。
下面的代码用CopyHandle复制了内存句柄,然后用GlobalFree释放。
void CMyPrintView::OnFilePrintSetup()
{
// Ask the user which printer they want to use.
CPrintDialog pd(
FALSE,
PD_ALLPAGES | PD_USEDEVMODECOPIES |
PD_NOPAGENUMS | PD_HIDEPRINTTOFILE | PD_NOSELECTION,
this);

// Make sure we don't accidentally create a device context
pd.m_pd.Flags &= ~PD_RETURNDC; // Reset flag set by constructor.

// Force the CPrintDialog to use our device mode & name.
pd.m_pd.hDevMode = CopyHandle(m_hDevMode);
pd.m_pd.hDevNames = CopyHandle(m_hDevNames);

// Display the dialog box and let the user make their selection.
if (pd.DoModal() == IDOK)
{
// The user clicked OK
// (and POSSIBLY changed printers).

// In any case, the CPrintDialog logic made a copy of the original
// DEVMODE/DEVNAMES that we passed it and applied the user's
// changes to that copy and discarded the original copy we passed
// it. (NOTE: If the user had clicked CANCEL instead, the original
// values we passed would have been returned unchanged).
GlobalFree(m_hDevMode); // Free old copies.
GlobalFree(m_hDevNames); // Free old copies.

m_hDevMode = CopyHandle(pd.m_pd.hDevMode); // Save new copies.
m_hDevNames = CopyHandle(pd.m_pd.hDevNames); // Save new copies.
}

// Regardless of whether the user clicked OK or CANCEL,
// we need to ALWAYS do a GlobalFree of CPrintDialog's
// m_pd.hDevMode and m_pd.hDevNames upon return from
// DoModal in order to prevent a resource leak.
GlobalFree(pd.m_pd.hDevMode); // Because DoModal was called,
GlobalFree(pd.m_pd.hDevNames); // we need to free these.
}
syy64 2004-07-06
  • 打赏
  • 举报
回复
对,资源有很多,内存只是其中之一,像句柄,GDI等很多,资源泄漏就是资源没释放。

16,472

社区成员

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

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

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