zoukankan      html  css  js  c++  java
  • GDI+ 对象释放崩溃的问题

    确保在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;
    }

  • 相关阅读:
    ViewPager自动轮播、小圆点切换
    android自定义view属性
    单点触控
    自定义view、自定义圆形imageview
    为textview中的字符串着色
    xstream解析、httputils请求
    WebView加载页面
    HorizontalScrollView滑动 ViewPager切换
    Spring Boot 热部署(IDEA与Gradle)
    Linux下安装JDK
  • 原文地址:https://www.cnblogs.com/yuzhould/p/4454249.html
Copyright © 2011-2022 走看看