大家知道MOBIL5.0开始,EVC4开发的工程就无法进行DEBUG了,而必须使用VS.NET2005中的VC++来实现。但是以前我们费了很大心力做成的项目,也不能重新来写。
今天通过一上午的研究,将转化方法贴出来和大家共勉。
       这里我们以DIALOG BASED工程为例。首先用EVC4建立一个DIALOG BASED的POCKET PC 2003工程。此工程名我们暂定为TXDEMO。我们也可以在对话框放置一个BUTTON,在单击事件里,添加 AfxMessageBox(L”Test”); 以便升级到VS.NET 2005后,测试资源对应情况。
       此时,保存TXDEMO工程,并关闭掉EVC4开发工具。此时用VS.NET 2005打开TXDEMO.VCW工程,并接受转换请求。此时并将编译环境切换到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 设置成“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。
 
此时再次编译,系统不在提示错误,但是编译好的程序,还不能在模拟器或者MOBILE5.0 POCKET PC的机器上运行。
 
我们接着设置项目属性,在Configuration Properties->Gengeral页将Use of MFC ,改成静态连接。
 
此时我们运行程序 ,您会发现程序启动后,就立刻退去。经过我的研究,发现是加载对话框资源失败,在此我们再此打开TXDEMO.RC源文件,
找到IDD_TXDEMO_DIALOG DIALOG DISCARDABLE 0, 0, 130, 90语句,将下面的窗体属性改成如下,即可。
WS_POPUP | WS_VISIBLE | WS_CAPTION
此时,再次编译工程,你可以进行DEBUG并可以运行程序。
这是我对EVC4升级到VS.NET 2005一点总结,其中参考了MSDN中一些文档,但是MSDN说的还不够详细,通过我自己的研究,总结出一点经验,希望能给大家带来方便,谢谢。
 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

我试着用别的对话框来实现,
http://www.cppblog.com/michaelgao/archive/2008/10/03/63200.html





Posted on 2008-10-03 21:59 micheal's tech 阅读(1961) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理