Ricky的开发手记

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

最近在使用 Visual Studio .NET 2003 开发 Smart Device 项目时,发现 Windows Mobile 5.0 系统存在两个问题,使用的 PDA 是HP iPAQ 2190。

第一个问题:使用 cabwiz.exe 生成CAB安装包时INF配置文件里只能包含ANSI字符,不能包含中文或者其他Unicode字符,否则安装后中文的部分,例如快捷方式、“删除程序”列表里的程序名称等都会出现乱码。而同样的安装包在Pocket PC 2003操作系统里面就没有问题,中文的部分能够正常显示。更不能容忍的是,VS .NET 2003 附带的 cabwiz.exe 还可以使用包含中文的INF配置文件来生成CAB安装包,到了 VS 2005 里面附带的 cabwiz.exe 压根就不能用这样的INF配置文件了,如果INF文件里包含中文,执行的时候直接提示不能生成CAB安装包。这样的话,我们根本不能创建带有中文,并且在Windows Mobile 5.0下面正常使用的CAB安装包了,我们只能在WM 5.0里面只用英文的快捷方式了,除非手工建立。不知道微软为何竟会退步?

第二个问题:微软在WM 5.0以及与之配合使用的ActiveSync 4.x之间的通讯方式作了比较大的更改,现在的模式是PDA和PC机连接时,装有WM 5.0的PDA作为DHCP服务器,而PC机上会建立一个名为Windows Mobile-based Device的虚拟网卡,然后PC机作为DHCP客户端,接受PDA分配的IP地址,这样建立起一个虚拟网络来完成通讯。不知道微软这样设计有什么优势,但是比起Windows Mobile 2003的通讯机制我觉得有两个缺点,其一是PC机必须依赖DHCP Client服务。在很多使用固定IP的计算机上,用户为了减少资源占用,都会把这个服务改为手动启动。而在ActiveSync 4.0的文档里并没有提到这个问题,所以这些用户初次建立连接的时候会出现无法同步的情况,虚拟网卡一直在尝试获取网络地址,我就是一个受害者,具体情况可以看看我在前面的帖子。这个问题困扰了我一个下午加一个晚上的时间。其二是采用这种方式虚拟网卡分配的IP地址是169.254.*网段的地址,而以前的方式PDA使用的是192.168.*网段的,以我个人的感觉,一般的防火墙对前面地址的拦截率要明显高于后者。最明显的体会就是使用WM5.0的PDA在同步和访问局域网时碰到网络连接问题的几率比原来多太多了。

希望能有高手解释一下微软为什么在WM5.0里面做了这些改动?有什么考虑?

posted on 2006-04-09 17:25  Ricky  阅读(2456)  评论(7编辑  收藏  举报