使用VS2010 編譯從vc6.0複製過來的原project檔案原始碼。提示錯誤非常多。感覺無從下手。非常多原始的函式和API引數都提示型別
錯誤或者不相容。
百度一下。第一個問題:
vc6.0使用ASIIC字元。而VS2010預設選項使用unicode. 在project上面右鍵屬性,把預設字符集改動為
"No Set",例如以下圖所看到的
又一次編譯整個解決方式,非常多原先型別不匹配的錯誤消失。如:char*和char陣列無法轉換。
TCHAR 和 LPCWSTR 無法轉換等。
第二個問題,一個解決方式裡面,建立了多個project。一直提示無法找到外部符號LNK2019錯誤。
百度非常多,都是說標頭檔案未定義等等。
事實上。應該
把握一個原則:那就是,多個project,僅僅有一個是主project,將來會編譯成exe檔案。其它project都是輔助的。僅僅能編譯為.lib或者dll。
然後在連線的時候包括
進來。我的低階錯誤時,多個project檔案,上圖的Configuration Type 都是Application(.exe). LNK2019錯誤的原因裡面:一部分是輔助的project檔案找不到
main(console)或winmain(windows),主project檔案中面找不到連線的其它project檔案函式。把輔助project檔案的 Configuration Type 改動為.lib或dll 就能夠了。
再把linker 選項設定一下就能夠了。