vc++6.0項目遷到vs2005

1.如果MessageBox("aa") 報錯,將其要改成 MessageBox(_TEXT("aa")).我喜歡用MessageBox來調試程序,尤其是在寫腳本時,當你不知道程序有沒有執行該條語句,以及執行完該條語句後某個變量的值發生了什麼變化,在該條語句前後各加一個MessageBox(str),哈哈,一目瞭然了吧

2.pow(2,10)   要改成 pow((double)2,10)或pow(2.0,10)

說明:6.0中用到math.h pow()函數時,有這個原型 double pow(int _X,int _Y)
但如果用VC++ 2005的話,pow()的第一個參數就不能再使用int型態,只能使用float、double、long double,VC++ 2005在編譯時會做type checking,然後就過不了,報error C2668

3.Itoa方法名要改成 _Itoa_s

4.error C2440:“static_cast” 無法從“void (__thiscall CChatManagerDlg::* )(WPARAM,LPARAM)”轉換爲“LRESULT (__thiscall CWnd::* ),出錯處在ON_MESSAGE(WM_SETPLAY,OnSetPlay)

解答:將void CVideoBaseView::OnSetPlay(WPARAM wp,LPARAM lp) 改成LRESULT CVideoBaseView::OnSetPlay(WPARAM wp,LPARAM lp){

LRESULT result = Default();

//你原來的代碼

return result;}

5.找不到MFC80D.DLL

解決:“工程屬性”->“link”->“manifesto file”->“$(IntDir)/$(TargetFileName).intermediate.manifest” 值   改成    $(IntDir)/$(TargetFileName).manifest

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章