簡介VS2003報錯詳細介紹
上回在公司運行VS 2003 突然彈出VS 2003 報錯的問題,在運行是發(fā)現(xiàn)了一個VS2003的Bug。直接導致6個VS 2003無法運行,需重新安裝,下面就說一下VS 2003的相關BUG。。
我在此先描述一下關于VS 2003的Bug,再討論 iostream 的Bug。
因為在對于此Bug的測試中,直接導致其6名同事的VS 2003 報錯,需要重裝。及 遙望 的VC 6 的完全損毀。
Part 1: 關于 Visual Studio 2003 Enterprise Architect 的 Bug: #t#
在我發(fā)現(xiàn) iostream 的一個懷疑是 Bug 的問題后,將其剝離出來,作為單獨的測試程序,發(fā)送給了 遙望(其又轉(zhuǎn)發(fā)至其同事)。據(jù) 遙望 反饋,他們的步驟如下:
1. 先建一空的 C++ 控制臺項目;
2. 向其中添加一個空的cpp文件;
3. 將我的代碼(隨后附上)拷貝進去;
4. 編譯。
之后鏈接器拋出兩個錯誤:
test error LNK2001: 無法解析的外部符號 _main
test fatal error LNK1120: 1 個無法解析的外部命令
之后所有的控制臺程序就都不能編譯,且發(fā)現(xiàn),隨便在文件里寫什么,編譯單個文件的時候都不會報錯,但編譯整個工程的時候就還是那兩個錯誤” 我確定,在我的代碼中沒有任何語法錯誤。 于是我照著VS 2003 報錯其步驟試驗,果然拋出以上兩個錯誤。但幸好我其它的控制臺程序還可以正常編譯。
此后找人再試,編譯通過,沒有發(fā)現(xiàn)問題。于是話題轉(zhuǎn)移到了 iostream 的Bug 上。
于是,遂將該問題送至 MicroSoft。另外,不保證該錯誤肯定會出現(xiàn),或?qū)е?FONT>VS 2003 報錯,但大家如果要試,仍請三思。畢竟,7個VS 2003,一個VC6, 一個VC2003 測試, 7個VS 2003 報錯,其中6個損毀;一個VC 6損毀,一個 VC2003 平安。
其全部代碼如下:
- #include "windows.h"
- #include "iostream"
- using namespace std;
- /*
- FUNCTION DEFINITIONS: Bug Genesis
- */
- BOOL BugGenesis()
- {
- TCHAR szLinkString[MAX_PATH];
- ZeroMemory( szLinkString, MAX_PATH * sizeof( TCHAR ) );
- cout<<"If you input the \"wew; we;\",the bug will occur:"<<endl;
- cin>>szLinkString;
- cout<<"The Input String Are:"<<szLinkString<<endl;
- return TRUE;
- }
- /*
- FUNCTION DEFINITIONS: Main Functions
- */
- int main()
- {
- int iChooseNum = 0;
- cout<<"Iostream Bug:"<<endl;
- while( TRUE )
- {
- cout<<"1. Bug Genesis:"<<endl;
- cout<<"0. Exit;"<<endl;
- cout<<"Choice:";
- cin>>iChooseNum;
- if( !iChooseNum ) break;
- switch( iChooseNum )
- {
- case 1:
- BugGenesis();
- break;
- default:
- cout<<"Error Choice!"<<endl<<"Please Rechoose!"<<endl<<endl;
- break;
- }
- }
- return 0;
- }