• 移植到Windows CE 的经验


      Windows CE 是微软早期推出的嵌入式设备和移动设备的开发运行平台,虽然目前移动端几乎都是android和ios的天下,但是,在嵌入式设备领域,Windows CE仍然占有一块地盘。很多用户希望让ESFramework通信框架和轻量级的通信引擎StriveEngine能支持Windows CE 客户端,基于这个需求,前几个月,我将ESFramework和StriveEngine的客户端引擎移植到了WinCE平台。

      在WinCE平台下,可以使用.NET(Compact Framework),这是个好消息,但是移植的过程还是碰到了很多麻烦,特别是部署WinCE的开发环境就摸索了很久。

    一.部署WinCE开发环境

    1.安装VS2005以及SP1

      更高的VS版本已经不直接支持WinCE了,VS2005对WinCE开发的支持应该说是最方便的。

    2.安装Windows Embedded CE 6.0

      这个比较坑爹,在MS官网居然找不到一个6.0的完整安装包,可能是因为太老了。转折N久之后,还是从这个地方批量下载一个个安装文件,才算凑成了一个完整的安装程序。

    3.安装ActiveSync 4.5

      ActiveSync在baidu搜索就很容易找到下载地址,下载后安装也还是很顺利的。

    二.使用WinCE进行开发、调试

      在上述的环境准备就绪后,我们就可以开始创建WinCE项目并进行调试了。

    1.创建WinCE项目。

      使用VS2005创建项目,在左侧菜单中,可以选择“智能设备->WinCE”,其是基于.NET 2.0 Compact Framework的。然后,就可以像开发普通的.NET应用一样来编写代码了。

    2.开始调试

    (1)启动ActiveSync。

      并点击“文件”—>“连接设置”,在“允许连接到以下其中一个端口”下选择“DMA”。

    (2)打开仿真设备管理器(VS2005->tools->仿真设备管理器)。

    (3)让模拟器可以联网。

      在仿真设备管理器界面上,可以看到仿真程序列表,在某个列表项上(比如 Pocket PC 2003 SE 仿真程序)右键->Connect,连接成功后,再右键->cradle。

             

      如此,模拟器相当于与当前电脑位于同一个局域网,如果,服务端程序在当前电脑上运行,那么,模拟器上运行的客户端程序要连接的是当前电脑的局网IP地址,而不能是“127.0.0.1”。我们需要把模拟器当作一个独立的电脑设备。

    (4)接下来,我们就可以在WinCE程序中设置断点,进行跟踪和调试了。

    三.关于反射(Reflection)在WinCE上的运行

      将ESFramework的某些功能移植到WinCE时,需要使用Reflection来动态获取和设置object的某个属性的值,就像这样: 

     object val = type.InvokeMember(propertyName, BindingFlags.Default | BindingFlags.GetProperty, null, targetObj, null);

       代码的编写和编译都是没有问题的,但是运行到这句时,会抛出NotSupportException。于是,我换了一个反射的方式:

     PropertyInfo pro = type.GetProperty(propertyName);
     object val = pro.GetValue(targetObj, null);

      这样,居然就能正常运行了,这是个有点奇怪的事情。

  • 相关阅读:
    ThinkPHP 3.2.2 实现持久登录 ( 记住我 )
    Java实现 LeetCode 20 有效的括号
    Java实现 LeetCode 20 有效的括号
    Java实现 LeetCode 19删除链表的倒数第N个节点
    Java实现 LeetCode 19删除链表的倒数第N个节点
    Java实现 LeetCode 19删除链表的倒数第N个节点
    Java实现 LeetCode 18 四数之和
    Java实现 LeetCode 18 四数之和
    Java实现 LeetCode 18 四数之和
    Java实现 LeetCode 17 电话号码的字母组合
  • 原文地址:https://www.cnblogs.com/zhuweisky/p/3495052.html
Copyright © 2020-2023  润新知