定制一个eVC上的中文模拟器

2024-05-02 18:08
文章标签 定制 中文 模拟器 evc

本文主要是介绍定制一个eVC上的中文模拟器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载:http://www.cnblogs.com/walzer/archive/2007/04/15/713880.html

 

中文模拟器这个问题实在被问得太多了,eVC自带的STANDARDSDK_500 Emulator用起来显然不顺手,存在以下缺点:

(1) 不支持中文的,只支持英文。中文显示上去一堆框框。

(2) 不支持Folder Sharing。模拟器开起来后,菜单里的Emulator->Floder Sharing是灰的,点不了。导致要用到的所有文件都得用Remote File Viewer传上去,不仅麻烦,而且上传的大小总量还有限制。比如你打算用模拟器上的播放器,放个100M的视频文件,这在 STANDARDSDK_500 Emulator上就不可能了

(3) 组件有限。想用的API没有。比如计划的最终产品上有IE和WMP,你想用Internet Client接口,但标准模拟器上就是没有。


自己定制模拟器的前提是安装了Platform Builder for Windows CE 5.0。定制步骤如下:

一、建立PBWorkspace,定制语言和组件,编译run-time image

(1) 打开Platform Builder, 从菜单File->New Platform新建一个PBWorkspace, 注意在 New Platform Wizard - step 3 选BSP时要钩选EMULATOR:X86。在step 4的Design Template我选了Mobile Handheld,带的组件比较多,省事。一路NEXT下去。

(2) 在step 4选完Design Template后,别点Finish, 要点Next进到下一步。在这里把Standard SDK for Windows CE都选上, 再下一步把网络都勾上。ActiveSync和TCP/IP都是连接模拟器的调试手段,多勾点没什么坏处。在eVC里我比较郁闷的是用 ActiveSync作Transport的话,连不上模拟器;而用TCP/IP连接模拟器时有个不好,就是网卡不能处于断开状态,得随便找个路由或者 MODEM连上,程序才能下载到模拟器上。这个是后话了。

(3) NEXT到头后,PBWorkspace建好了,自己点菜,往里头加组件吧,应用开发比较常用到的也就是Applications and Services Development,Graphics and Multimedia Technologies, Shell and User Interface三个目录下面的东东,还有里我的建议是在产开发初期就把所需的组件定好,然后定制模拟器给应用开发人员用,BSP开发好后,同样也加上 模拟器上用的那些组件来编译产品的IMAGE,这样应用开发才不会走样。

(4) 大家最关心的一步,中文。从PB菜单的Platform->Settings点进去,选择Locale页,然后在Locales:下面的复选框里慢 慢找中文吧。其实就在最后一个:中文(中国)。加好后,在Default Language下拉菜单里就可以选“中文(中国)”了。 默认的拉丁文国家是在太多了,我一般先点Clear All,然后再找英文(美国)和中文(中国)就够了。

(5) 选完语言后,顺便拜访一下Build Options页。Full Kernel Mode我是比较喜欢,可惜据说运行起来会不稳定,还是别勾了;Enable KITL勾上,多个调试通路也好。

(6) 编译生成一个run-time image. 从菜单里Build OS->Sysgen. 等半个小时吧。从编译和SDK的原理来说,这步不是必须的。但是如果不SYSGEN而直接BUILD SDK,会弹出下图这个警告框。怕怕,还是SYSGEN一下好了

二、编译SDK

(1) 终于等完SYSGEN,现在可以导出SDK了,从PB菜单里点Platform -> SDK -> New SDK. 出来个对话框,如下图。这里面的Locale只能选U.S.English和Japanese,这步和SDK的语言没关系,我们选English. 点NEXT

(2) 第二步选编程支持,eMedded Visual C++ 4.0 support是必选的,其他看开发规划了。然后就FINISH了

(3) 别急着点Build SDK, 在Configure SDK里还很多好玩的。从PB菜单里点Platform->SDK->Configure SDK, 出来个N多内容的对话框。

A) 比较重要的,切到Emulation页,在Configuration里默认的可能是None, 选成Emulator: x86_Release,然后就可以配置内存大小、分辨率和色深了,这点比较重要,以前我还不懂自己定制模拟器时,就在分辨率和色深上吃过亏,模拟器上作 好的东西,放到板子上跑完全走了样

B) 首先选Transports页,看看TCP/IP, ActiveSync, KITL三种调试手段都勾上没,选个自己喜欢的作默认。

C) 然后切到Splash Screen页, 可以弄张BMP图片作为SDK安装包启动时的广告界面。我原来以为是可以替换掉每次WINCE模拟器启动时显示的Windows CE那张LOGO图片,看来还没那么好玩。

(4) 编译SDK了。Platform->SDK->Build SDK。这个很快,两三分钟就搞定了。

三、安装SDK,开始爽吧

在WINCE500/PBWorkspaces/%your_workspace%/SDK/ 里面可以找到刚才编译出来的SDK。先关闭eVC再安装它。安装完后,重新打开eVC,就可以选择这个模拟器了,用法和STANDARDSDK_500模 拟器一样,但是功能强多了,有自己定制的组件、分辨率和色深、可以Folder Sharing。我自己弄的一个,发张PP

 

EVC和VC看起来不多,主要区别应该只在SDK/CPU类型的选择,和远程调试方法上面。
关于调试方法,我BLOG的随笔分类里的TOOLS栏目里有一些入门的文章可以参考 http://www.cnblogs.com/walzer/category/61900.html
关于UI编程,在UI分类里有些可以参考 http://www.cnblogs.com/walzer/category/92488.html 如果你对FLASH空间的开销不敏感的话,就用MFC;如果对成本敏感,那么就可以用GWES的方案,目前我就是在这基础上做的。GWES的说明位于 WINCE500的产品文档的Windows CE Features > Shell and User Interface > Graphics, Windowing and Events里面

 

 

请问博主,我若调用SDK现有的驱动,比如产商提供的ADC驱动,经PB编译后生成一个.dll文件,我是直接调用这个dll中的方法,还是怎么用呢?需要把SDK导出,再在SDK上调用吗,谢谢!

最好不要直接对驱动的DLL进行LoadLibrary进行加载和调用, 这中间还应该有一个系统层. 我只了解"STREAM DRIVER"类型, 以这种流式设备驱动为例

(1) 首先你可以用PB或EVC上的REMOTE PROCESS VIEWER来查看一下板端的DEVICE.EXE里头是否加载了你的DLL, 如果没有,则应该在platform.reg里找找原因; 如果有就进行下一步
(2) 如果在应用程序里调用改驱动DLL里的功能, 那么调用方法分两种,
(a) 一种是CE提供API与DRIVER相接,不直接调用DeviceIOControl. 比如你调用CreateFile("COM1:", ...)时, 串口驱动DLL里的COM_Open就被系统调用到了, 但你不是直接LoadLibrary后调用COM_Open, 而你调用WaitCommEvent时, 驱动里的COM_IOControl(...IOCTL_SERIAL_WAIT_ON_MASK)就会被操作系统调用到了.
(b) 一种是自己添加的驱动, 比如你说的ADC驱动,在CE里头应该就没有专用的一套API来调用了,就需要直接用DeviceIOControl函数. 那么比方说你在platform.reg里头把这个设备叫"ADC1:",那么你在应用程序里 CreateFile(TEXT("ADC1:"),...)拿到HANDLE后, 通过WriteFile调用你驱动里的ADC_Write, 通过ReadFile调用驱动里的ADC_Read, 通过DeviceIoControl调用驱动里的ADC_IOControl就可以了.

你要在应用层上调用驱动, 最好是把SDK从PB上导出, 用EVC在SDK上编写应用, 这个你说得对. 在PB里编译应用程序也行, 但下载和调试很麻烦,工作效率不高.

这篇关于定制一个eVC上的中文模拟器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/954862

相关文章

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

RedisTemplate默认序列化方式显示中文乱码的解决

《RedisTemplate默认序列化方式显示中文乱码的解决》本文主要介绍了SpringDataRedis默认使用JdkSerializationRedisSerializer导致数据乱码,文中通过示... 目录1. 问题原因2. 解决方案3. 配置类示例4. 配置说明5. 使用示例6. 验证存储结果7.

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

Java下载文件中文文件名乱码的解决方案(文件名包含很多%)

《Java下载文件中文文件名乱码的解决方案(文件名包含很多%)》Java下载文件时,文件名中文乱码问题通常是由于编码不正确导致的,使用`URLEncoder.encode(filepath,UTF-8... 目录Java下载文件中文文件名乱码问题一般情况下,大家都是这样为了解决这个问题最终解决总结Java下

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取