我正在使用GDI API,只是為了在螢屏上顯示一個(bmp)影像。以下是執行該任務的函式的代碼:
void drawImg_ArmorInfo_PupWnd(HDC hdc){
GdiplusStartupInput gdiplusStartupInput。
ULONG_PTR gdiplusToken。
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL)。
Image* image = new Image(L "C:/Users/Darek/F2 stuff/art/intrface/armor_info_1.bmp") 。
int a1 = image->GetWidth();
int a2 = image->GetHeight() 。
圖形圖形(hdc)。
graphics.DrawImage(image, 0, 0)。
洗掉影像。
GdiplusShutdown(gdiplusToken)。
問題是,我得到了一個例外。在呼叫。有趣的是,當我注釋掉GdiplusShutdown函式后,違反了寫入位置 0xXXXXXX
Graphics graphics(hdc)。
graphics.DrawImage(image, 0, 0)。
部分程式運行沒有任何問題,但影像當然不會被畫出來。當我注釋掉對GdiplusShutdown函式的呼叫時 - 又沒有問題了。
這段代碼有什么問題,問題的原因是什么?
uj5u.com熱心網友回復:
graphics在GdiplusShutdown之后掉出了范圍,所以它不能正確地解體。
試一下:
Graphics * graphics = new Graphics(hdc)。
graphics->DrawImage(image, 0, 0)。
洗掉圖形。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/320276.html
標籤:
下一篇:為什么chrome/visualstudiocode/edge都有相同的類名"Chrome_WidgetWin_1"?
