初识 Embedded Visual C++

 大家一定会对 Windows CE 操作系统有所耳闻,它是微软已推出的三种操作系统内核之一,是一种实时操作系统。虽然它是一种实时操作系统,但是从96年发布v1.0到现在,它的主要用途都在民用领域,比如Pocket PC、SmartPhone、Automation。不像VxWorks,应用于航空航天、军事等领域。现在linux、VxWorks厂商也都看好嵌入式民用市场,激烈竞争在所难免。我看好Windows CE,因为微软在PC领域实在太强,用户也早已熟悉了微软的产品,把PC下的技术移植到嵌入式领域,首先在操作界面方面就占了上风。
  我有幸在两年前从事Windows CE下内核定制和软件开发工作,做的项目是AutoPC。入门也不算很难,当初VC++的水平也算凑合了,所以学EVC(embedded visual c++)也比较快。做了一些软件后,又开始学习platform builder――定制内核工具。因为我们的内核是需要自己定制的,不同于Pocket PC、SmartPhone。
  未来几年在Windows CE下开发软件的需求将越来越多,我希望有兴趣的程序员能投身其中,开始程序人生新的起点。如果有时间我将在这个专栏陆续写一些关于EVC的文章,希望能够抛砖引玉。而关于platform builder的文章,如果有时间我将在中文MSDN网站上发表。
  EVC是Windows CE下软件开发工具之一,还有一个EVB,用java也可以。EVB不用说,编译出的软件肯定相对较慢。java也不是什么地方都能用,要看平台是否支持。所以我认为EVC是首选开发工具。熟悉VC的程序员要学EVC比较容易,EVC的界面和VC差不多,同样支持SDK、MFC、ATL,所以直接就能上手编写代码。但需注意的事项也不少,而且要编写和系统底层有关的程序,就必须先了解Windows CE的特征,建议你先学习《Windows 核心编程》,然后再看看Windows CE的帮助文档,了解CE的操作系统特征。为什么这么建议呢,如果不熟悉Windows 核心编程的知识,而直接看Windows CE的英文帮助相关部分,那很难能看懂。 1、在PC下安装EVC 4.0。
  如果你要问我从哪能弄到EVC,这我无法告诉你,我用的是公司买的,EVC+PB(platform builder)一套要N万元。Windows CE的开发模式一般是在PC下编程,然后通过网卡或串口下载到实际的硬件平台上调试。但EVC提供了一个模拟器,这样就可以不用将编译完的程序下载到实际平台上调试。即使这样也不要高兴太早,模拟器只能调试最简单的程序。稍复杂的程序,尤其是操作硬件的程序就必须下载到实际硬件平台上调试。
  在PC下安装EVC4.0和安装普通的软件一样,按照安装向导提示,先安装platform manager(平台管理器,必须使用这个工具),再安装EVC(IDE部分),接着安装standard SDK(模拟器使用的SDK),最后安装SP(service pack)。我每次都是先安装PB(platform builder),再安装EVC(注意:安装PB不是必要的)。
  整个安装过程中必须注意的事项:A、不要改动PB和EVC默认的安装路径。因为改变了默认安装路径,即使安装向导提示安装成功,也不能保证你能够成功启动PB或EVC。启动PB或EVC时会提示你某个组件没安装,但实际上已经安装了。B、在安装向导向你询问选择哪些CPU时,只选择x86和emulator。C、EVC4.0自带了SP1,现在有SP2(微软网站提供免费下载),如果想安装SP2,在安装开始时就不要选择安装SP1,安装完毕后,自行安装SP2。 D、PC操作系统可以是windows 2000、windows xp、windows 2003。E、无论出于什么原因,如果你第一次安装EVC失败了,那么以后再安装也很难成功,因为EVC的卸载也不是很干净,很多注册信息仍留在注册表中。我的解决办法是重装操作系统,当然,克隆会更快。祝愿你一次安装成功。 2、IDE和开发支持库

        图片1 IDE部分截图

  启动EVC后,你会发现整个IDE界面和VC基本一致,让你有了驾驭它的信心,IDE部分我不想多说,只提和VC不同的地方。A、“WCE configuration”工具栏和VC的略有差别,左数第三个下拉框有多个选择,用于选择基于哪个平台编译。如果你在安装时只选择了x86和emulator,那么这里就有四个选项:Win32 [WCE emulator] Debug/Release和Win32 [Wce x86] Debug/Release 。当前你只能选择emulator,也就是程序编译出来在模拟器上运行。B、工具菜单(tools)的内容和VC有很大差别。多出一些远程工具。可以用它们来访问模拟器平台,比如添加一个文件到模拟器,从模拟器复制一个文件到本地硬盘,访问模拟器的注册表,还可以对模拟器进行设置。

图片2 tools菜单
  前面已经说了,SDK、MFC、ATL都能在EVC下使用。但里面的内容不可能和VC的完全一致。相比较有多有少,这是根据Windows CE的特征来决定的。比如MFC没有CRichEdit类,没有CHtmlView类等等,但比VC多出了CCeSocket类。其实对于程序员来说,开发支持库的变化无所谓,只要有开发资料,有帮助文档,就OK了。EVC在安装后,并没有产生EVC的帮助文件的快捷方式,如果你装在C盘,那帮助文件路径为:
"C:\Windows CE Tools\eVC4\Htmlhelp\emtools\evc4help.chm"。这个目录帮助文件很多,这个是主要的文件,它可以链接到其它帮助文件。另外在开发前还要注意一些事项。A、Windows CE中预定义了_UNICODE宏,所以CString 类的字符都是unicode码,在将字符串赋值给CString对象前一定要加上 _T() 或 TEXT() 宏,这两个宏在预定义了_UNICODE情况下,将字符串每个字符转变成宽字符。也可以在字符串前面加“L”将每个字符转变成宽字符。B、安装的standard SDK内容较少,所以如果在编译程序时出现错误,比如链接错误,别忘了出错原因可能是编码的错,也可能是SDK不支持。要全部的支持就必须安装PB。C、默认情况下模拟器不支持中文,所以中文显示为乱码。D、使用开发向导,比如“WCE MFC AppWizard”时,在选择资源对应的语言时,并没有中文,所以你必须在应用程序向导生成工程文件后,手工去更改资源的对应语言,要显示中文,这一步必须做。
注:我记得在网上看到过模拟器支持中文方法。你可以到一些嵌入式开发网站寻找。 3、编写、调试程序
  使用应用程序向导(AppWizard)生成框架,然后编码。或者不使用向导直接编码,在这里我就不多说了,和在VC下操作一样。我在这里只说一下调试方法。
  假设编写好了代码,先要在“WCE configuration”工具栏上的第三个下拉框中选择“Win32 [WCE emulator] Debug”(如果代码没问题,选择Win32 [WCE emulator] Release)。接着单击“WCE configuration”工具栏上的执行或调试按钮。这时会显示一个进度条,说明模拟器正在启动,并加载要调试的程序,直到Windows CE桌面和应用程序界面显示出来。在模拟器中可以直接用鼠标和键盘操作。在下次调试前,一定要先关闭正调试的应用程序,否则模拟器提示出错。
注:模拟器安装成功,在“本地连接”的属性对话框中,会多出一项:“virtual PC Emulated Ethernet Switch”。 本篇文章就写到这。如果有时间我会接着写第二篇。写作时间:2004-4-29 未经本文作者同意,不准擅自转载本篇文章。联系作者请邮至fllsoft@163.com 或 fllsoft@sina.com

原文地址:https://www.cnblogs.com/googlegis/p/2979186.html