热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

“零基础”学习WinCE开发

在接触WinCE时候的基础:软件语言基础:CC++C#。我不是计算机专业的,所以这些语言基础也是比较业余的。经验不丰富,遇到问题就是查MSDN或者到网上查找相关解决方案即可,程序


在接触WinCE时候的基础:

  • 软件语言基础:C/C++/C#。我不是计算机专业的,所以这些语言基础也是比较业余的。经验不丰富,遇到问题就是查MSDN或者到网上查找相关解决方案即可,程序就有这点好处,很多东西都是成熟的技术,到网上甚至连源码都能找到的。
  • 硬件平台基础:用的是广州致远的开发板EPCS-6960I-W,这种小型工控板自带WinCE系统,而且有比较多的硬件接口可以用来进行数据采集和数据通讯。
  • 学习资源:广州致远公司会提供一张学习光盘,里面有相应的开发示例和工控板的电路结构及一些硬件驱动。在安装了厂家提供的EPCS-6960I-W工控板对应的SDK开发包后,会在相应的目录下找到WinCE的帮助文档,里面对WinCE系统的相关API的详细介绍。还有就是到遇到问题可以到网上找解决方法,或者直接打电话到厂家的技术部进行咨询。

1. 认识WinCE

      Windows CE 是微软公司开发的一个针对小型设备(它是典型的拥有有限内存的无磁盘系统)的通用操作系统。主要用于嵌入式系统和移动终端设备上,操作界面和PC机上的WinXp系统比较类似,例如也是窗口化的操作界面,也具有磁盘资源管理器,文件系统和网络通讯协议和WinXp一样,程序开发也和WinXp环境下的程序开发。具体关于WinCE的介绍可以到网上搜索相关资料。个人的理解就是,WinCE可以看作一个精简后的WinXp系统,“麻雀虽小,五脏俱全”,在一些小型工控系统中可以发挥巨大的作用。

2. 开发环境

2.1 连接设备

    先安装ActiveSync4.2同步软件。安装完毕后,你的PC机上的资源管理器中会多一个“移动设备”的图标(如下图),这个就是和移动设备进行文件交互的接口。通过这个接口,用户可以在PC机上对移动设备的文件进行读取的相关简单操作。

clip_image002

    将工控机主板用USB连接到PC机上,给主板接上电源并启动WinCE系统。然后在PC端Micrsoft ActiveSync同步软件会自动进行检测,并连接到移动设备。连接成功后,会有如下图的提示出现。

clip_image004

    当PC机和移动设备成功建立连接后,用户就能以PC机上的资源管理器中的“移动设备”作为入口对移动设备进行文件访问和其它相关操作了,比如,假如你是利用PC侧的WinCE模拟器开发的程序,那么生成的执行文件也在PC上,你可以通过“移动设备”接口,将你的程序文件“下载”到移动设备中。

clip_image006

    注意:只有连接设备成功了,才能进行后面的程序开发和调试。

    小建议:最开始的时候,都以为WinCE开发只需要一块安装了WinCE系统的工控板即可,不需要LCD,然后就直接黑灯瞎火地弄了一个月,最后实在忍受不了,然后花了800RMB买了一块配套液晶板,才突然感觉好起来。开发Windows程序的时候,液晶板是必需的,否则你在开发的时候将会很难受的,就像给了你一台没有显示器的电脑,虽然你可以通过鼠标进行盲操作,但那种感觉应该是比较糟糕的吧。

 

2.2 开发环境中需要进行的设置。

    本次开发选用的环境是VS2005,虽然网上很多例程都是用Microsoft eMbedded C++ 4.0(以下简称eVC4.0)进行开发的,但是个人感觉VS2005的功能更强大一些,体验也更好一些。eVC4.0和开发界面和VC6.0一样(如下图),是一款比较经典的开发环境,喜欢VC6.0风格的用户可以选用eVC4.0进行开发。

clip_image008

clip_image010

2.3 开发语言选择

    WinCE5.0的版本,支持C/C++/C#。因为支持C#,也就是说在WinCE5.0集成了.NET框架,但是因为WinCE系统在工控板上的应用,属于比较底层的应用,会涉及较多的硬件接口的开发,所以一般建议用C++进行开发,但是因为C#在高层应用上的开发具有难度低、周期短的特点,所以可以进行两种语言的混合编程的(在今后的“DLL应用”中将会讲到这种技术的应用)。

 

2.4 开发环境的设置

2.4.1 C#项目的建立和设置

    用VS2005建立智能设备Windows CE 5.0的C#项目,开发环境就会自动建立一个模板,用户可以在此代码模板中写自己的程序了。

clip_image012

    但是此时如果点击调试,将弹出一个移动设备模拟器,不能和实际的工控板硬件进行连接调试,所以需要进行相关设置。在解决方案资源管理器中,选中项目,右击-属性,然后会弹出属性设置页面。

clip_image014

    在“设备”选项卡中的部署选项的目标设备选择为“Windows CE 设备”,这个时候就可以连接工控机设备了。输出文件文件夹中

“%CSIDL_PROGRAM_FILES%\WinCeCsUseDll”

表示的是在WinCE设备中的根目录下的Program Files文件夹中的WinCeCsUseDll目录下生成此项目的相关文件。点击右边的“浏览”按钮可以进行相关的设置。因为工控机上的除了放在FlashDisk里面的东西在断电后不会丢失外,其余的都会丢失,所以,你可以通过对此路径的设置,将你的程序生成的目录放在FlashDisk中,这样断电了也不会丢失了。

2.4.2 C++项目的建立和设置

  选择项目类型:

clip_image016

  选择SDK开发包(工控机厂家会提供相应的开发软件包的):

clip_image018

  选择相应的开发环境:窗口程序,控制台程序,DLL和表态库,等等。例如,选择建立“控制台应用程序”并添加MFC支持:

clip_image020

    然后点击完成,VS2005就自动为你创建了程序模板了。

    在项目属性中有一些设置需要注意一下。在项目解决方案浏览器中,右击项目并选择属性,会弹出一个属性对话框。“部署”选项卡中的“远程目录”是指你的项目在WinCE工控机上生成的对应目录。“调试”选项卡中的“远程可执行文件”是指你程序调试要调用的执行文件(注意:如果你建立的是DLL项目,那么,这个地方要修改一下,修改成调用了此DLL文件的EXE执行程序,只有这样DLL项目才能够进行调试)。

clip_image022

    例如:部署远程目录为

%CSIDL_PROGRAM_FILES%\WinCeCsUseDll

表示,你在PC机上对项目进行部署后,你可以在你的WinCE工控机的根目录下的Program Files文件夹下的WinCeCsUseDll文件夹下找到此项目的相关生成文件。

clip_image024

    例如:调试选项卡下的远程可执行文件目录为:

%CSIDL_PROGRAM_FILES%\WinCeCsUseDll\WinCeCsUseDll.exe

表示,当你在PC机上调试此项目的时候,会调用的EXE文件目录。在你选择调试的时候,VS2005会先执行“部署”也就是会在WinCE设备的相应目录下生成相关的文件,然后再进行调用和调试。如果开发的是DLL程序,那么,就更好理解了,就是直接启动一个对此DLL进行了调用的EXE文件,然后对引DLL的源码进行调试。

    小技巧:如果是编写DLL程序,那么就要同时编写一个调用此DLL的EXE程序,因为你调试DLL程序或者调用DLL文件的时候,都需要保证EXE程序和DLL文件在同一目录下,所以,可以在项目属性将对两项目的部署路径进行设置,放在同一目录下面,并将DLL的调试所需要调用的程序的路径设置成你编写的EXE文件路径。

 

3. 开发过程中的学习资源

如果对上面的基本知识了解了,那么后面的基本就是你的编程水平的体现了。遇到问题后的解决方法和你进行XP桌面程序开发一样了,因为WinCE可以理解成一个小型化的WinXp系统,所以,如果你有Xp系统的开发经验,那么你就能够比较快速入门。主要的学习参考资料如下:

3.1微软帮助文档MSDN

    一般本地的MSDN是面向XP平台的桌面应用程序的,但是因为WinCE有很多的类似,所以,一些基本的API方法也是可以移植到WinCE上的。不过,建议直接用在线的MSDN,里面有专门针对WinCE开发的帮助。

http://msdn.microsoft.com/en-US/library/ms899235.aspx

clip_image026

在线帮助文档的目录如上所示。注意是一层一层往下展开的。

3.2 工控板生产厂家提供的帮助文档

    当你安装了工控板生产厂家提供的SDK开发包后,就会在相应的目录下找到帮助文档了。例如安装了EPCS6960的SDK后,会在目录

C:\Program Files\Windows CE Tools\wce500\EPCS_6960\Help

里面找到相应的本地WinCE开发帮助文档。

clip_image028

3.2 网络论坛

    到网上多搜索相关帖子,即使解决不了你的问题,但总会给你一些启发的。即使专门针对WinCE的帖子不多,但是你可以找WinXp的,一般都是可以移植的(C++的移植性要好一些,但是C#可能移植性差一点,因为WinCE下安装的只是一个精简的.NET框架)

    总述:做了上述的准备工作后,后面的就是“体力活”了。任何所谓的脑力劳动都是这样的,当你掌握了基本技能后,脑力活动也就变成了体力活动了。好,有了这些基本的技能后,就开始解决问题吧。

 

 

   注:购买硬件平台的价格比较高,比如EPCS6960的工控板一套就要接近两千,一个液晶屏又要将近800,所以对于初学者,可以自己到网上下载WinCE模拟器,软件仿真WinCE操作系统,熟悉WinCE下的程序设计。用硬件工控板的主要好处就是,有硬件接口及相应的驱动程序提供给开发人员,可以进行现场数据采集和控制。关于WinCE模拟器的下载及相应的使用方法可以参考文章:


推荐阅读
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了使用CentOS7.0 U盘刻录工具进行安装的详细步骤,包括使用USBWriter工具刻录ISO文件到USB驱动器、格式化USB磁盘、设置启动顺序等。通过本文的指导,用户可以轻松地使用U盘安装CentOS7.0操作系统。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
author-avatar
小妖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有