我好几天没弄出来,高手救命

fyz2841585 fyz2841585 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
void CImageWnd::GetImageData(CString strPath)
{
m_strPath = strPath;
CReadDicom readDicom;

CxImage * pImage1=new CxImage;
m_pImage = readDicom.GetDcmLocalImageData(strPath,(CxImage*)&pImage1);
delete pImage1;//在函数外进行new和delete,防止内存泄漏}
CxImage* CReadDicom::GetDcmLocalImageData(CString inPath,CxImage*pImage )
{
pImage = new CxImage;//为什么这行注销了就会运行23行;不注销,就可以正确到20行 BOOL bReVal = FALSE;
BYTE * pDicomDibits = NULL;
int nSize = 0;
pImage->Create(pDicomImg->getWidth(), pDicomImg->getHeight(), 24);
nSize = pDicomImg->createWindowsDIB((void*&)pDicomDibits, 0, 0, 24, 1, 1);
if(nSize == pImage->GetEffWidth() * pImage->GetHeight() && pDicomDibits != NULL)
{
memcpy(pImage->info.pImage, pDicomDibits, nSize);
bReVal = TRUE;//正确 20行
}
else
{
bReVal = FALSE;//不正确 23行
}
return pImage;
}

这行:pImage = new CxImage;不注销的话就内存泄漏啊,该怎么办。
...全文

相关推荐

评论 17
收藏 已收藏
分享
返回顶部
fyz2841585
C++ 语言 65,214 成员 250,514 内容