開發平台由vc6.0公升級至vs2005以上的版本,需要將原有的專案遷移,可能碰到類似錯誤:
錯誤 c2440 「static_cast」: 無法從「void (__thiscall cmainframe::* )(wparam,lparam)」轉換為「lresult (__thiscall cwnd::* )(wparam,lparam)
vs2005之後的版本對訊息的檢查更為嚴格,以前在vc6下完全正常執行的訊息對映在vs2005下編譯不通過
[cpp] view plain
copy
on_message(wm_message,onmymessage);
[cpp] view plain
copy
error c2440: 「static_cast」: 無法從「void (__thiscall c***::* )(wparam,lparam)」轉換為「lresult (__thiscall cwnd::* )(wparam,lparam)」 在匹配目標型別的範圍內沒有具有該名稱的函式
error c2440: 「static_cast」: 無法從「void (__thiscall c***::* )(void)」轉換為「lresult (__thiscall cwnd::* )(wparam,lparam)」在匹配目標型別的範圍內沒有具有該名稱的函式
解決方法如下:
首先,把原來的訊息函式返回值型別改為lresult,函式內可以隨便寫個return true;
然後訊息函式的引數必須改寫成(wparam wparam,lparam lparam)而不論這兩個引數是否用得到;
最後,訊息對映如on_message(wm_message,& onmymessage)。
sqlserver高版本到低版本遷移
從sqlserver2014 備份bak檔案,在sqlserver2012中還原時遇到版本不相容的問題。經過leader 指導,可嘗試以下辦法處理資料遷移。共分三個步驟 一 對需要遷移資料庫生成sql指令碼,右鍵目標資料庫,選擇任務 生成指令碼,並選擇高階選項如下 二 在sqlserver2012新...
svn遷移到git實踐
服務端用的是windows版gitblit,svn版本上的分支一律不保留 1 先登入gitblit管理頁面,建立倉庫 abc.com 2 在本地www目錄下用git bash執行 git svn clone no metadata abc 結束後www目錄下會多出乙個名為abc目錄,注意那個trun...
Oracle遷移到MySQL總結
日期 2012 06 01 字型 大中小 這兩個星期裡一直都在忙於一件事兒,就是oracle資料庫的遷移問題。沒有做的時候感覺這是一件十分輕鬆的事兒,可是等到實實在在去做去實現的時候,自己傻眼了。這種糾結啊,在這裡先說下遇到的問題 1。資料庫的表結構問題 資料型別不同需要解決varchar2 var...