起草VS2003編譯的一些好的方法和引用
學習VS2003編譯時,你可能會遇到種種問題,這里將介紹VS2003編譯問題的解決方法,在這里拿出來和大家分享一下。很多用戶都很了解VS2003了,但是對于VS2003編譯還是很陌生,這里我發(fā)表一下個人理解,和大家討論討論。
STL的iterator不能初始化了,否則會報錯。
◆std::vector
VS2003編譯,但在2005下就報錯:cannot convert from 'int' to 'std::_Vector_iterator
必須寫成
◆std::vector
這個問題應該在是由于類型檢查更嚴格造成的。估計其他類似的使用方法也可能存在問題
一些字符串相關的操作會警告說是不推薦的方法。
例如,如果使用了strcpy函數的話,就會出如下警告warning C4996: 'strcpy' was declared deprecated這是應為微軟發(fā)明了“安全的C++”概念,意思是說,strcpy是不推薦使用的函數。
在vs2005下,數據類型必須明確定義
const entrysize=0x10c;//在vs2003下是可以編譯的但在vs2005下報錯:error C4430: missing type specifier - int assumed. Note: C++ does not support default-int#t#
必須修改成:const int entrysize=0x10c;
for循環(huán)條件中定義的變量被歸入for循環(huán)代碼塊了
- for(DWORD i=0;i<size;i++)
 - VS {
 - VS buffer[i]=0;
 - VS //some other codes
 - VS }
 - VS buffer[i]=100;//這里會報i沒有定義的錯誤;
 - VS 在2005中,必須寫成這樣:
 - VS DWORD i=0
 - VS for(i=0;i<size;i++)
 - VS {
 - VS //some codes
 - VS }
 - VS buffer[i]=100;
 
某些MFC做了變化
Save(CFile file);以上代碼在VS2003下可以使用VS2003編譯,在VS2005中 編譯報錯:error C2248: 'CObject::CObject' : cannot access private member declared in class 'CObject'















 
 
 
 
 
 
 