Visual Studio 常見的錯誤訊息與解決方案

由於在下修課緣故,教授所用的平台為Windows + Visual Studio2010
可是平常時我都是使用 Vim + Clang(LLVM) 所以對於這套 M$ 出品的 VS 頗難上手
遇到些丟出的訊息也是不知道怎麼處理
有時候網路上的解決方案也是無效,因此特別整理一篇疑難雜症集來紀錄
希望也能幫上遇到相同問題的人
請特別注意,以下事項皆針對課堂的作業所進行的解決方案,不一定是泛用型
(本文不定時更新,另外,如果有遇到什麼問題也歡迎一起來討論)


1. 

error LNK2019(2001, etc): 無法解析的外部符號 ...... 在函式 _main 中被參考
這種類型的錯誤大部份是已經有宣告了某個函式,可是忘記實作細節
當 compiler 跑到那行的時候,因為沒辦法用,所以就丟出這個訊息

解決方案:

先把沒實作的函式註解掉,或是先在函式實作的地方執行一些動作(like std::cout<<"Wait\n";)


2.

function/object/etc.....在XXX.lib已被定義......
這類型的問題在作業裡頭可能是他有定義些東西,但是你的 Overload 沒有全部實作完導致

解決方案:

就是把該 Class 裡面的所有被要求 Overwrite 的 function 全部實作完畢就可以過了
(如果有高手知道原因,請一定要跟我說,我真的很想知道為什麼會有這個錯誤訊息)

3.

執行期間出現未預期的例外處理 0X0...c 存取到 0X0000...000 的違規存取位置
通常就是在程式裡不小心存取到非法的記憶體位置(like array[-1], access NULL pointer, etc)

解決方案:

如果是陣列的話,請在有使用變數index的地方特別注意有沒有超出邊界
如果是linked list的話,可能想要讀NULL所指的東西,請檢查有使用到pointer的地方

4.

執行期間在單元測試裡 Crash 掉,由於單元測試的碼未公開,無法直接單行追蹤

解決方案:

先根據給出的錯誤訊息判斷哪個區塊可能比較容易 Crash,通常都是在動到指標的地方
在所有容易更動 Object 裡頭值的 function 裡把輸入的參數以及有更動到的變數皆印出在螢幕上
便可以追蹤到正確失誤的地方

5.

編譯前出現 XXX function / XXX is Unaccessed

解決方案:

通常出現這個訊息時,代表著你使用到 class 裡的 private 成員
檢查你取用的 XXX 是否被宣告為 private

0 意見:

張貼留言

湖水偶然間遇上詩人的一片雲,而你因為機緣踏入這裡
何不留下一絲的吉光片羽呢?

關於我自己

在資訊工程走著的孩子,有太多的事情不懂,太多的東西想瞭解,一頭栽入無遠弗屆的世界!

搜尋此網誌

總網頁瀏覽量

技術提供:Blogger.