第一次接触GDI+,一点都不了解,拿别人的代码放到自己的对话框程序中。语法没有错误,但程序运行时,在GdiPusBitmap.h的
SetStatus(DllExports::GdipGetImageHeight(nativeImage, &height));
位置中断。发现nativeImage是空的,再跟踪初始化图片的代码,定位到
m_pImage=Image::FromStream(pIStream);
这里。原来是Image::FromStream(pIStream)返回了空内容。仔细查看别人的工程代码,发现原来在移植到自己的工程中漏了App中的代码。于是将
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
定义为App的成员变量。
在App的InitInstance()中加:
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
在App的ExitInstance()中加:
GdiplusShutdown(gdiplusToken);
问题解决。