在網絡通訊中,經常要使用xml技術來編寫通訊協議,而在win32平臺上,就有一個比較好用的xml解析和生成API------CMarkup,它的使用方法很簡單,沒有在這裏敘述的必要,但是在與windows API混合使用過程當中,一不小心會出現一些編譯錯誤
/microsoft visual studio 8/vc/atlmfc/include/afxv_w32.h(16) : fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>
打開afxv_w32.h可以看到,這是一個預編譯錯誤輸出,提示這個頭文件已經包含了windows.h,繼續往下瀏覽,會發現第164行果然包含了windows.h,但是,在我們的解包和加包模塊中,需要同時使用CMarkup和windows API呀,怎麼辦呢?
問題很好解決,既然硬來不行,不妨迴避一下,在模塊中包含這兩個頭文件的時候,先包含Markup.h文件,然後再包含windows.h,這樣,就能在編譯階段迴避上述出現的問題。