從網(wǎng)上下載了一個(gè)程序先編譯后看看效果,發(fā)現(xiàn)原來(lái)的工程是Visual C++ 2003寫的,于是轉(zhuǎn)化到Visual C++ 2008 SP1的工程,一編譯,直接跳出對(duì)話說(shuō) Microsoft (R) C/C++ 優(yōu)化編譯器 遇到問(wèn)題需要關(guān)閉。我們對(duì)此引起的不便表示抱歉。如下圖所示:

打開(kāi)工程的項(xiàng)目屬性,發(fā)現(xiàn)優(yōu)化選項(xiàng)已經(jīng)選擇禁用了。沒(méi)辦法,開(kāi)始慢慢檢查問(wèn)題。
1、把編譯時(shí)報(bào)錯(cuò)的文件注釋掉,確認(rèn)其它文件編譯無(wú)誤。
2、把報(bào)錯(cuò)的文件從全部注釋掉到部分注釋掉,判斷問(wèn)題所在。
最終發(fā)現(xiàn)錯(cuò)誤出在下面這句代碼上:
swprintf(text, L"text%d", this);
突然記起前面遇到同樣的問(wèn)題的時(shí)候最后也是通過(guò)把sprintf函數(shù)注釋掉才解決的,把這句代碼注釋掉,再次編譯,發(fā)現(xiàn)問(wèn)題解決了。
仔細(xì)看這句代碼,實(shí)在看不錯(cuò)為什么要把類的this指針這樣輸出然后通過(guò)GDI+繪制到界面上去,也許是網(wǎng)上代碼良莠不齊,或者自己水平太菜還沒(méi)到能解讀的層次。
另外放上在編譯時(shí)同樣遇到過(guò)這個(gè)問(wèn)題的另外程序的界面截圖,我很喜歡的一個(gè)程序界面,費(fèi)了我好大勁才把殘缺的代碼弄出個(gè)勉強(qiáng)能看看的可執(zhí)行程序來(lái):

(別問(wèn)我要代碼,這種圖和代碼網(wǎng)上都有,只是代碼不全而已,不過(guò)是可以拼湊出可執(zhí)行程序來(lái)的)