如何将EVC4工程升级到VS.NET2005工程

大家知道MOBIL5.0开始,EVC4开发的工程就无法进行DEBUG了,而必须使用VS.NET2005中的VC++来实现。但是以前我们费了很大心力做成的项目,也不能重新来写。

今天通过一上午的研究,将转化方法贴出来和大家共勉。

这里我们以DIALOGBASED工程为例。首先用EVC4建立一个DIALOGBASEDPOCKETPC2003工程。此工程名我们暂定为TXDEMO。我们也可以在对话框放置一个BUTTON,在单击事件里,添加AfxMessageBox(L”Test”);以便升级到VS.NET2005后,测试资源对应情况。

此时,保存TXDEMO工程,并关闭掉EVC4开发工具。此时用VS.NET2005打开TXDEMO.VCW工程,并接受转换请求。此时并将编译环境切换到WindowsMobile5.0pocketpcsdk。编译工程,此时会提示如下错误:

1>C:\ProgramFiles\MicrosoftVisualStudio8\VC\ce\atlmfc\include\afxver_.h(77):fatalerrorC1189:#error:Pleaseusethe/MDswitchfor_AFXDLLbuilds

这里我们通过打开Projectproperties对话框里,切换到C/C++->Codegeneration页,将RuntimeLibarary设置成“Multi-threadedDLL(/MD)”。即可解决此问题。

接着编译工程,此时会提示如下错误:

1>.\TXDEMO.rc(170):fatalerrorRC1015:cannotopenincludefile'wceres.rc'.

这里我们需要在TXDEMO.RC文件里,将#include"wceres.rc"注释掉。

//#include"wceres.rc"//WCE-specificcomponents

接着编译工程,此时会提示如下错误:

1>corelibc.lib(wwinmain.obj):errorLNK2019:unresolvedexternalsymbolwWinMainreferencedinfunctionwWinMainCRTStartup

1>WindowsMobile5.0PocketPCSDK(ARMV4I)\Debug/TXDEMO.exe:fatalerrorLNK1120:1unresolvedexternals

此时,我们依旧打开projectproperties对话框,切换到Linker->Advanced页,将EntryPointwWinMainCRTStartup改成WinMainCRTStartup

此时再次编译,系统不在提示错误,但是编译好的程序,还不能在模拟器或者MOBILE5.0POCKETPC的机器上运行。

我们接着设置项目属性,在ConfigurationProperties->Gengeral页将UseofMFC,改成静态连接。

此时我们运行程序,您会发现程序启动后,就立刻退去。经过我的研究,发现是加载对话框资源失败,在此我们再此打开TXDEMO.RC源文件,

找到IDD_TXDEMO_DIALOGDIALOGDISCARDABLE0,0,130,90语句,将下面的窗体属性改成如下,即可。

WS_POPUP|WS_VISIBLE|WS_CAPTION

此时,再次编译工程,你可以进行DEBUG并可以运行程序。

这是我对EVC4升级到VS.NET2005一点总结,其中参考了MSDN中一些文档,但是MSDN说的还不够详细,通过我自己的研究,总结出一点经验,希望能给大家带来方便,谢谢。

你可能感兴趣的:(C++,c,C#,vc++)