GDI+ 对象释放崩溃的问题

原创 2013年12月03日 15:22:04

确保在Gdiplus::GdiplusShutdown(m_gdiplusToken); 之前delete 掉GDI+的对象,例如:delete *pBitmap;

如果先Gdiplus::GdiplusShutdown(m_gdiplusToken);再delete *pBitmap; 程序会崩溃。

有时候会为了方便误将Gdiplus::GdiplusShutdown(m_gdiplusToken)先释放了,为了确保这种情况
在MFC中尽量按下面方式释放:
int CXXXApp:: ExitInitInstance()
{
GdiplusShutdown(m_GdiplusToken);
return CWinApp:: ExitInstance();

}


在WTL中释放:

GdiplusStartupInput   m_gdiplusStartupInput;
ULONG_PTR             m_gdiplusToken;
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpstrCmdLine, int nCmdShow)
{
	HRESULT hRes = ::CoInitialize(NULL);
//	HRESULT hRes = ::CoInitializeEx(NULL, COINIT_MULTITHREADED);
	ATLASSERT(SUCCEEDED(hRes));

      Gdiplus::GdiplusStartup(&m_gdiplusToken, &m_gdiplusStartupInput, NULL);

	::DefWindowProc(NULL, 0, 0, 0L);


	AtlInitCommonControls(ICC_BAR_CLASSES);	// add flags to support other controls


	hRes = _Module.Init(NULL, hInstance);
	ATLASSERT(SUCCEEDED(hRes));


	int nRet = Run(lpstrCmdLine, nCmdShow);


	_Module.Term();
	::CoUninitialize();
    Gdiplus::GdiplusShutdown(m_gdiplusToken);
	return nRet;
}

DLL中GDIPlus初始化和退出时注意的问题

转载的别人的文章,因为自己也在实际工程中遇到类似的问题。 DLL工程中使用GDIPlus 2009-08-04 14:51 前段时间项目的需求有所更改,因...
  • bichenggui
  • bichenggui
  • 2012年03月29日 14:23
  • 4090

gdiplus函数调用错误导致程序Crash分析

前几天帮其他team看一个Crash的问题,下面是问题分析.复现问题,获得如下log.4aea74b2 ??              ???0:006> kbChildEBP RetAddr  Ar...
  • LorenZhai
  • LorenZhai
  • 2011年05月19日 13:50
  • 1957

使用Gdiplus::Graphics时要注意一个问题

使用Gdiplus::Graphics时要注意下面这样的问题。 Gdiplus::Graphics graphics(pDC->m_hDC); // 用graphics画一些东东 // ...
  • HarbinZJU
  • HarbinZJU
  • 2011年08月03日 16:31
  • 3557

关于GDI 对象的创建和释放

在windows系列上做编程,gdi是一个很重要的技术点,有很多程序在运行多次后出现异常,除了众所周知的内存泄露以外,gdi资源泄露也是一个很直接的原因.今天就把我自己在编程中总结的一些经验给大家分享...
  • djc11282
  • djc11282
  • 2012年10月26日 10:13
  • 1449

GDI+对象的释放

    像包装了文件句柄和数据库连接等非托管资源的类需要特殊处理以确保其资源被适当地释放一样,Pen、Brush和其他代表图形基元的GDI+类也在此范畴之内,因为他们包装了GDI+的句柄。如果关闭GD...
  • jianbao
  • jianbao
  • 2006年12月15日 10:26
  • 3942

error LNK2019: 无法解析的外部符号 _GdiplusStartup@12

转自VC错误:http://www.vcerror.com/?p=1903 问题描述: error LNK2019: 无法解析的外部符号 _GdiplusStartup@12,该符号在函数 "...
  • swanabin
  • swanabin
  • 2015年07月25日 16:54
  • 1302

c++链接时,无法解析的外部符号 _GdipAlloc等一系列报错

错误原代码: virtualcamerasourcestream.obj : error LNK2019: 无法解析的外部符号 _GdipAlloc@4,该符号在函数 "public: static...
  • sqn614
  • sqn614
  • 2017年05月02日 23:09
  • 556

使用GDI+进行图片处理时要注意的问题

使用GDI+进行图片处理时要注意的问题
  • chenlycly
  • chenlycly
  • 2014年04月19日 15:37
  • 11334

GdiplusFlat(9)自绘按钮的实现(方法2)

本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/d...
  • zuishikonghuan
  • zuishikonghuan
  • 2015年08月10日 16:19
  • 2238

GDIplus的初次接触--加载并显示常用格式图片

在没有接触Gdiplus之前,在vc中绘制图片,通常加载一张位图,然后进行贴图。对于现在多种多样的图片格式,之前的GDI并不支持(应该是这样的,呵呵)。而使用Gdiplus则可以选择多种图片格式,比如...
  • s634772208
  • s634772208
  • 2015年06月01日 09:56
  • 5746
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GDI+ 对象释放崩溃的问题
举报原因:
原因补充:

(最多只允许输入30个字)