在线急等 关于CPrintDialog 内存泄漏问题
清新悦悠然 2011-04-07 04:06:08 ASSERT(pWnd);
CPrintDialog pd(
FALSE,PD_ALLPAGES | PD_USEDEVMODECOPIES | PD_NOPAGENUMS | PD_HIDEPRINTTOFILE |D_NOSELECTION,pWnd);
pd.m_pd.Flags &= ~PD_RETURNDC; // Reset flag set by constructor.
if(m_hDevMode)
pd.m_pd.hDevMode = CopyHandle(m_hDevMode); // 每当程序运行到这个地方都会报内存错误
if(m_hDevNames)
pd.m_pd.hDevNames = CopyHandle(m_hDevNames);
if (pd.DoModal() == IDOK) {
if(m_hDevMode)
GlobalFree(m_hDevMode); // Free old copies.
if(m_hDevNames)
GlobalFree(m_hDevNames); // Free old copies.
if(pd.m_pd.hDevMode)
m_hDevMode = CopyHandle(pd.m_pd.hDevMode); // Save new copies.
if(pd.m_pd.hDevNames)
m_hDevNames = CopyHandle(pd.m_pd.hDevNames); // Save new copies.
}
GlobalFree(pd.m_pd.hDevMode); // Because DoModal was called,
GlobalFree(pd.m_pd.hDevNames); // we need to free these.
return DevmodePrinterName();
}
程序每当运行到 m_hDevMode 与m_hDevNames 相关的语句是都会报内存错误,这两个变量的初始化 在构造函数中 初始化为NULL,请教这是什么原因啊