低版VC遷移到高版,各種問題

2021-09-26 12:04:12 字數 872 閱讀 3223

開發平台由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...