我打算將gdi+的api進行封裝,提高**的重用性。結果,我遇到了乙個極其討厭的問題。
通常,我們都需要將class的定義寫在.h標頭檔案中,那麼很明顯就要將gdiplus.h包含在標頭檔案中了,但是,不知道為什麼,我認為ok的**卻編譯不過,例如:
<
gdiplus.h
>
using
namespace
gdiplus;
#pragma comment(lib,
"gdiplus.lib
" )
class
cdisplay
;
(cdisplay.h)
在cdisplay.cpp中實現標頭檔案中定義的兩個方法,編譯出現了如下錯誤:
error c2146: syntax error : missing ';' before identifier 'graphicsstate' 以及fatal error c1004: unexpected end of file found。而且編譯結果顯示錯誤出現在gdi+本身的標頭檔案中。我想,這個錯誤一定不會是由於gdi+本身造成的,事實上將這個類應用到標準的mfc工程中,卻沒有問題。在網上找了很久一直不得其解,最後還是我的老大告訴了我其中的玄機:只需要在標頭檔案中包含afxdtctl.h就可以將問題解決了。該afxdtctl.h檔案中包含了gdi+的標頭檔案中所需的一些巨集定義,如果缺少了這些巨集定義就會導致編譯出現錯誤了。
Followme Devops實踐之路
引言 天下武功,唯快不破 想要提高開發團隊效率,勢必要有一套完整而成熟的開發流程方案,除了sprint迭代開發模式之外,還有近幾年流行的devops流程,都是可以大幅度提高開發效率的工具.我們團隊也不斷探索 實踐,最終形成了現有的一套體系,從最初的手動發布到現有的自動化,從起始的繁瑣易亂到當下的簡潔...
Followme Devops實踐之路
引言 天下武功,唯快不破 想要提高開發團隊效率,勢必要有一套完整而成熟的開發流程方案,除了sprint迭代開發模式之外,還有近幾年流行的devops流程,都是可以大幅度提高開發效率的工具.我們團隊也不斷探索 實踐,最終形成了現有的一套體系,從最初的手動發布到現有的自動化,從起始的繁瑣易亂到當下的簡潔...
京東技術中颱Flutter實踐之路(二)
移動網際網路歷經高速發展的 10年,多樣的市場需求催化了前端技術不斷公升級改造,真正的前端大統一時代正在來臨,不管你願不願意相信,大前端技術的發展趨勢已是定勢,前進的腳步無可改變。眾所周知,ios android web分別代表著前端技術需要考慮的必要方向,傳統的移動網際網路開發需要同時考慮多個平台...