我可能会说一个非常简单的程序..
#include <windows.h>
#include <gdiplus.h>
using namespace Gdiplus;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR cmdLine, int nShow){
// Gdiplus variables
GdiplusStartupInput mGdiplusStartupInput;
ULONG_PTR mGdiplusToken;
GdiplusStartup(&mGdiplusToken, &mGdiplusStartupInput, NULL);
Bitmap bitmap(L"left.bmp");
GdiplusShutdown(mGdiplusToken);
return 0;
}
运行此示例时,我在此函数中的GdiplusBitmap.h中获得了访问冲突
inline
Image::~Image()
{
DllExports::GdipDisposeImage(nativeImage);
}
删除对Bitmap bitmap(L"left.bmp");
的调用一切正常..我试图在msdn上找到一个简单的例子(例如Bitmap constructor附近的某个地方,但没有找到任何东西。)
我错过了什么?
答案 0 :(得分:8)
在关闭GDI +的调用之后,您创建的Bitmap
实例超出了范围。因此,当Bitmap
被破坏时,它无法调用给定的GdipDisposeImage
方法。
如果确保在关闭GDI +之前删除了bitmap
,则错误应该消失。