Gdiplus::Bitmap::FromHICON 失败
Failure for Gdiplus::Bitmap::FromHICON
我正在尝试通过调用 Gdiplus::Bitmap::FromHICON
将 HICON
转换为 Gdiplus::Bitmap
,如下所示。
我通过调用 LoadIcon
创建了一个 windows 图标,并通过在屏幕上绘制来验证该图标是否有效。
令人惊讶的是,我仍然得到了一个NULL
指针。我重新访问了 win32 documents 但找不到我丢失的内容。
HICON hIcon = LoadIcon(NULL, IDI_WINLOGO);
assert( hIcon != nullptr ); // passed
Gdiplus::Bitmap *pIcon = Gdiplus::Bitmap::FromHICON(hIcon);
assert( pIcon != nullptr ); // failed
有人知道吗?谢谢:)
您需要先使用GdiplusStartup函数初始化GDI+引擎:
HICON hIcon = LoadIcon(NULL, IDI_WINLOGO);
assert(hIcon != nullptr); // passed
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
Gdiplus::Bitmap *pIcon = Gdiplus::Bitmap::FromHICON(hIcon);
assert(pIcon != nullptr); // now OK
GdiplusShutdown(gdiplusToken);
我正在尝试通过调用 Gdiplus::Bitmap::FromHICON
将 HICON
转换为 Gdiplus::Bitmap
,如下所示。
我通过调用 LoadIcon
创建了一个 windows 图标,并通过在屏幕上绘制来验证该图标是否有效。
令人惊讶的是,我仍然得到了一个NULL
指针。我重新访问了 win32 documents 但找不到我丢失的内容。
HICON hIcon = LoadIcon(NULL, IDI_WINLOGO);
assert( hIcon != nullptr ); // passed
Gdiplus::Bitmap *pIcon = Gdiplus::Bitmap::FromHICON(hIcon);
assert( pIcon != nullptr ); // failed
有人知道吗?谢谢:)
您需要先使用GdiplusStartup函数初始化GDI+引擎:
HICON hIcon = LoadIcon(NULL, IDI_WINLOGO);
assert(hIcon != nullptr); // passed
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
Gdiplus::Bitmap *pIcon = Gdiplus::Bitmap::FromHICON(hIcon);
assert(pIcon != nullptr); // now OK
GdiplusShutdown(gdiplusToken);