因为没有仔细看文档

https://docs.microsoft.com/en-us/windows/desktop/api/Gdiplusinit/nf-gdiplusinit-gdiplusshutdown

You must call GdiplusStartup before you create any GDI+ objects, and you must delete all of your GDI+ objects (or have them go out of scope) before you call GdiplusShutdown.

抛异常

	Gdiplus::GdiplusStartupInput gdiplusStartupInput;
	ULONG_PTR gdiplusToken;
	Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
	
		HDC deskTop = GetDC(NULL);
		int nBitPerPixel = GetDeviceCaps(deskTop, BITSPIXEL);
		int nWidth = GetDeviceCaps(deskTop, HORZRES);
		int nHeight = GetDeviceCaps(deskTop, VERTRES);
		//int center
		Gdiplus::Graphics graphics(deskTop);
		graphics.TranslateTransform(nWidth / 2, nHeight / 2);
		Gdiplus::Image *image = new Gdiplus::Image(L"D:\\456.png");

		printf("%dx%d BitPerPixel = %d\r\n", nWidth, nHeight, nBitPerPixel);
		graphics.DrawImage(image, -256 / 2, -256 / 2, 256, 256);

		delete image;
		image = nullptr;
		ReleaseDC(NULL, deskTop);
	
	Gdiplus::GdiplusShutdown(gdiplusToken);

使用 {} 大阔号把 gdi+ 的对象作用域分开,当离开作用域时,此时 gdi+ 对象的使用资源会释放掉,然后调用 Gdiplus::GdiplusShutdown(gdiplusToken); 函数就不会抛异常了。you must delete all of your GDI+ objects (or have them go out of scope) before you call GdiplusShutdown.

	Gdiplus::GdiplusStartupInput gdiplusStartupInput;
	ULONG_PTR gdiplusToken;
	Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
	{
		HDC deskTop = GetDC(NULL);
		int nBitPerPixel = GetDeviceCaps(deskTop, BITSPIXEL);
		int nWidth = GetDeviceCaps(deskTop, HORZRES);
		int nHeight = GetDeviceCaps(deskTop, VERTRES);
		//int center
		Gdiplus::Graphics graphics(deskTop);
		graphics.TranslateTransform(nWidth / 2, nHeight / 2);
		Gdiplus::Image *image = new Gdiplus::Image(L"D:\\456.png");

		printf("%dx%d BitPerPixel = %d\r\n", nWidth, nHeight, nBitPerPixel);
		graphics.DrawImage(image, -256 / 2, -256 / 2, 256, 256);

		delete image;
		image = nullptr;
		ReleaseDC(NULL, deskTop);
	}
	Gdiplus::GdiplusShutdown(gdiplusToken);

相关文章:

  • 2021-09-08
  • 2022-12-23
  • 2022-12-23
  • 2021-11-15
  • 2022-02-08
  • 2022-12-23
  • 2021-11-24
  • 2022-12-23
猜你喜欢
  • 2021-09-30
  • 2021-08-30
  • 2021-11-09
  • 2021-05-29
  • 2021-08-08
相关资源
相似解决方案