大家知道MOBIL5.0開始,EVC4開發(fā)的工程就無法進(jìn)行DEBUG了,而必須使用VS.NET2005中的VC++來實現(xiàn)。但是以前我們費(fèi)了很大心力做成的項目,也不能重新來寫。
今天通過一上午的研究,將轉(zhuǎn)化方法貼出來和大家共勉。
這里我們以DIALOG
BASED工程為例。首先用EVC4建立一個DIALOG BASED的POCKET PC
2003工程。此工程名我們暫定為TXDEMO。我們也可以在對話框放置一個BUTTON,在單擊事件里,添加
AfxMessageBox(L”Test”); 以便升級到VS.NET 2005后,測試資源對應(yīng)情況。
此時,保存TXDEMO工程,并關(guān)閉掉EVC4開發(fā)工具。此時用VS.NET 2005打開TXDEMO.VCW工程,并接受轉(zhuǎn)換請求。此時并將編譯環(huán)境切換到Windows Mobile 5.0 pocket pc sdk。編譯工程,此時會提示如下錯誤:
1>C:\Program
Files\Microsoft Visual Studio 8\VC\ce\atlmfc\include\afxver_.h(77) :
fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
這里我們通過打開Project properties對話框里,切換到C/C++->Code generation頁,將Runtime Libarary 設(shè)置成“Multi-threaded DLL(/MD)”。即可解決此問題。
接著編譯工程,此時會提示如下錯誤:
1>.\TXDEMO.rc(170) : fatal error RC1015: cannot open include file 'wceres.rc'.
這里我們需要在TXDEMO.RC文件里,將#include "wceres.rc"注釋掉。
//#include "wceres.rc" // WCE-specific components
接著編譯工程,此時會提示如下錯誤:
1>corelibc.lib(wwinmain.obj) : error LNK2019: unresolved external symbol wWinMain referenced in function wWinMainCRTStartup
1>Windows Mobile 5.0 Pocket PC SDK (ARMV4I)\Debug/TXDEMO.exe : fatal error LNK1120: 1 unresolved externals
此時,我們依舊打開project properties對話框,切換到Linker->Advanced頁,將Entry Point由wWinMainCRTStartup改成WinMainCRTStartup。
此時再次編譯,系統(tǒng)不在提示錯誤,但是編譯好的程序,還不能在模擬器或者M(jìn)OBILE5.0 POCKET PC的機(jī)器上運(yùn)行。
我們接著設(shè)置項目屬性,在Configuration Properties->Gengeral頁將Use of MFC ,改成靜態(tài)連接。
此時我們運(yùn)行程序 ,您會發(fā)現(xiàn)程序啟動后,就立刻退去。經(jīng)過我的研究,發(fā)現(xiàn)是加載對話框資源失敗,在此我們再此打開TXDEMO.RC源文件,
找到IDD_TXDEMO_DIALOG DIALOG DISCARDABLE 0, 0, 130, 90語句,將下面的窗體屬性改成如下,即可。
WS_POPUP | WS_VISIBLE | WS_CAPTION
此時,再次編譯工程,你可以進(jìn)行DEBUG并可以運(yùn)行程序。
這是我對EVC4升級到VS.NET 2005一點總結(jié),其中參考了MSDN中一些文檔,但是MSDN說的還不夠詳細(xì),通過我自己的研究,總結(jié)出一點經(jīng)驗,希望能給大家?guī)矸奖悖x謝。
eric.wong
msn:wbcpcpwb@hotmail.com
我遇到的問題與上述問題幾乎相似,但是對話框出了問題I have an app I ported from eVC 3.0 to VS2005, and when I run it, I get
the following error in the debug window:
ERROR: dialog template has DS_MODALFRAME set, which is not supported
for Pocket PC and Smartphone
And then I get a data abort and an unhandled exception error, and
everything just goes straight to hell.
According to Microsoft this is a feature removed in MFC 8.0. If that's
true, how do I get a floating modal dialog style application using MFC
8 without this style? Every style I try seems to want to come up
full-screen now.
Thanks,
PaulH
我試著用別的對話框來實現(xiàn),
http://m.shnenglu.com/michaelgao/archive/2008/10/03/63200.html