GDI 編譯問題

2021-06-18 13:14:53 字數 1048 閱讀 9090

當寫乙個gdi+的程式時,如果編譯的過程中出現一大堆的錯誤,如:

1>c:\program files\microsoft sdks\windows\v6.0a\include\gdiplusimaging.h(74) : error c4430: 缺少型別說明符 - 假定為 int。注意: c++ 不支援預設 int

1>c:\program files\microsoft sdks\windows\v6.0a\include\gdiplusimaging.h(74) : error c2440: 「初始化」: 無法從「const char [37]」轉換為「int」

1>        沒有使該轉換得以執行的上下文

1>c:\program files\microsoft sdks\windows\v6.0a\include\gdiplusimaging.h(74) : error c2146: 語法錯誤 : 缺少「;」(在識別符號「iimagebytes」的前面)

1>c:\program files\microsoft sdks\windows\v6.0a\include\gdiplusimaging.h(74) : error c2470: 「iimagebytes」: 看起來像函式定義,但沒有引數列表;跳過明顯的函式體

。。。。。。。。。。。。。

。。。。。。。。。。。。。

解決方法是將stdafx.h中的這個巨集定義給去掉

#define win32_lean_and_mean 

因為這個巨集定義會排除windows.h中的一些標頭檔案的包含

第二如果出現如下的問題

錯誤 1 error lnk2019: 無法解析的外部符號 _winmain@16,該符號在函式 ___tmaincrtstartup 中被引用 msvcrtd.lib
那麼1可能是工程的設定問題,如寫的是win32console程式, 卻用winmain做主函式,此時直接修改工程的設定,將subsystem 從windows 改為console就行了

第二種可能就是,winmain是寫成這樣_twinmain, 此時就是tchar.h沒包含造成的問題,包含此標頭檔案就行。

GDI記憶體洩露問題

在windows系列上做程式設計,gdi是乙個很重要的技術點,有很多程式在執行多次後出現異常,除了眾所周知的記憶體洩露以外,gdi資源洩露也是乙個很直接的原因.今天就把我自己在程式設計中總結的一些經驗給大家分享,歡迎高手補充.1.create出來的gdi物件,一定要用deleteobject來釋放,...

GDI 效率問題與優化

這週在用gdi 實現的動畫效果,起初每畫一幀都在30 40ms左右,動畫效果自然不能令人滿意。困惑了良久,後面在高人的指點下,效率有了顯著地提高,最主要是清楚了時間都花在了那裡,優化起來也就方便很多。我現在知道的影響gdi 效率的主要有 1 drawimage,比起bitblt實在差的不是一點點,解...

GDI 下的閃爍問題

畫多個點運動的時候,窗體會閃爍,查了一下網上的文章,說是optimizeddoublebuffer可以減少閃爍。但是我新增了效果更差,整個視窗經常白色的。搜了所有文章,基本上沒有有用的。後來經過多次試驗,才了解了graphics gc需要用e.graphics獲得,而不能用this.creategr...