织梦CMS - 轻松建站从此开始!

罗索实验室

当前位置: 主页 > 流媒体开发 > 大杂烩 >

EVC 4.0的一些入门基础

罗索客 发布于 2008-09-12 09:30 点击:次 
EVC(Embedded Visual C++)是微软公司推出的针对Windows CE嵌入式系统的应用程序开发工具,目前版本发展到EVC 4.0 SP4,支持到WinCE 5.0版本。
TAG:

EVC(Embedded Visual C++)是微软公司推出的针对Windows CE嵌入式系统的应用程序开发工具,目前版本发展到EVC 4.0 SP4,支持到WinCE 5.0版本。
EVC 4.0具有如下特点:
1、网上资料少,但是可以通过VC++移植。
2、编程复杂,继承了VC++的光荣传统。
3、调试困难,模拟器支持差,微软的一贯作风。
基于不完全统计的以上几点,微软在放弃了EVB(Embedded Visual Basic) 4.0后,决定再放弃EVC的后续版本开发,所有的嵌入式开发将整合到Visual Studio 2005 .NET中,完成历史性的统一。
虽然如此,鉴于现在.NET 2.0平台的如此不完善(连WinCE 5.0还只附带.NET Compact Framework 1.0,没比WinCE 4.2进步多少,在Platform Builder中加入.NET 2.0后系统居然无法启动),使用VS 2005 .NET(主打.NET 2.0)开发程序还是较为困难,只好忍痛放弃VS .NET,投奔到EVC的怀抱。
初学EVC,在反复的尝试之后,总结出一点点心得:
首先,我们新建一个工程,注意在CPUs的选择上,除了把要用的CPU钩选上,别忘了钩选emulator,在本机模拟器(WinCE 5.0,WinCE 4.2)调试时要用到它。
新窗口浏览
下一步,确定MFC是共享DLL还是静态链接库,如果WinCE的镜像不带MFC,那么这里必须设置成静态的,不过最好还是在Platform Builder把WinCE的镜像中加上MFC这个feature,静态的总是不好,这个设置可以在Project Settings里面改。


新窗口浏览
然后就一路Next,都完成后,进入了EVC的编辑界面。首先,我们要让程序支持中文。在VC++中,可以直接在向导中选择中文,可是EVC就比较扯淡,只能在这里重新设置一遍。


新窗口浏览
还有这里,所有的窗体都要设置成Chinese(P.R.C)。


新窗口浏览
如果程序用到了外部的链接,需要在这里设置,并且要万分注意的是,对于每个编译项目这些设置都是独立的,所以每一个编译平台(例如Debug,Release)都要重新做这些设置(包括语言设置)。


新窗口浏览
基本设置完成之后,就可以开始像VC++一样编程了。
如果我是从网上下载的程序,在开始向导时没有钩选我用的CPU怎么办呢?
比如这个程序,它只钩选了ARMV4和emulator,于是在WinCE 4.2下的SDK中,有如下四个平台:


新窗口浏览
但是当我把环境改成WinCE 5.0时,会发现ARMV4的两项没了,这是因为WinCE 5.0只支持ARMV4I。


新窗口浏览
这样我们就要手动添加ARMV4I到程序编译环境中。在Build的Configurations中选择Add。


新窗口浏览
然后手动把ARMV4I的Debug和Release都添加进去。


新窗口浏览
注意在这个Copy settings from中,不要选择Default Configurations,不然会有我也无法解释的错误。


新窗口浏览
这样,就可以在编译平台中看到新的CPU了。


新窗口浏览
不过还没完,因为我们是拷贝的别的平台的设置,所以新的平台编译肯定是会有问题的,果然,问题出来了:

引用
--------------------Configuration: PocketLian - Win32 (WCE ARMV4I) Debug--------------------
Compiling resources...
Compiling...
Command line warning D4002 : ignoring unknown option '/Gs8192'
StdAfx.cpp
Compiling...
Command line warning D4002 : ignoring unknown option '/Gs8192'
PocketLian.cpp
PocketLianDlg.cpp
Generating Code...
Linking...
.\\ARMV4IDbg\\PocketLian.obj : fatal error LNK1112: module machine type 'ARM' conflicts with target machine type 'X86'
Error executing link.exe.

PocketLian.exe - 1 error(s), 2 warning(s)

根据错误提示,我们找到设置中的Link,把这个conflict的machine改成ARM。


新窗口浏览
再次编译,还是有问题:

引用
--------------------Configuration: PocketLian - Win32 (WCE ARMV4I) Debug--------------------
Compiling resources...
Compiling...
Command line warning D4002 : ignoring unknown option '/Gs8192'
StdAfx.cpp
Compiling...
Command line warning D4002 : ignoring unknown option '/Gs8192'
PocketLian.cpp
PocketLianDlg.cpp
Generating Code...
Linking...
MFCCE400d.lib(mfcce400d.dll) : fatal error LNK1112: module machine type 'THUMB' conflicts with target machine type 'ARM'
Error executing link.exe.

PocketLian.exe - 1 error(s), 2 warning(s)

有完没完!只好再改一次。


新窗口浏览
这一次就好了,同样地,你需要把每一个平台的设置都给改了,这个Release就成功了:

引用
--------------------Configuration: PocketLian - Win32 (WCE ARMV4I) Release--------------------
Compiling resources...
Compiling...
Command line warning D4002 : ignoring unknown option '/Gs8192'
StdAfx.cpp
Compiling...
Command line warning D4002 : ignoring unknown option '/Gs8192'
PocketLian.cpp
PocketLianDlg.cpp
Generating Code...
Linking...

PocketLian.exe - 0 error(s), 2 warning(s)
Downloading files

这样,别人的劳动果实就可以在自己的板子上跑起来了

(ixmy)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www1.rosoo.net/a/200809/7119.html]
本文出处:网络博客 作者:ixmy
顶一下
(2)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容