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

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

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

打開工程的項(xiàng)目屬性,發(fā)現(xiàn)優(yōu)化選項(xiàng)已經(jīng)選擇禁用了。沒辦法,開始慢慢檢查問題。
1、把編譯時(shí)報(bào)錯(cuò)的文件注釋掉,確認(rèn)其它文件編譯無誤。
2、把報(bào)錯(cuò)的文件從全部注釋掉到部分注釋掉,判斷問題所在。
最終發(fā)現(xiàn)錯(cuò)誤出在下面這句代碼上:

突然記起前面遇到同樣的問題的時(shí)候最后也是通過把sprintf函數(shù)注釋掉才解決的,把這句代碼注釋掉,再次編譯,發(fā)現(xiàn)問題解決了。
仔細(xì)看這句代碼,實(shí)在看不錯(cuò)為什么要把類的this指針這樣輸出然后通過GDI+繪制到界面上去,也許是網(wǎng)上代碼良莠不齊,或者自己水平太菜還沒到能解讀的層次。
另外放上在編譯時(shí)同樣遇到過這個(gè)問題的另外程序的界面截圖,我很喜歡的一個(gè)程序界面,費(fèi)了我好大勁才把殘缺的代碼弄出個(gè)勉強(qiáng)能看看的可執(zhí)行程序來:

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