定制一个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

相关文章

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

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

vscode中文乱码问题,注释,终端,调试乱码一劳永逸版

忘记咋回事突然出现了乱码问题,很多方法都试了,注释乱码解决了,终端又乱码,调试窗口也乱码,最后经过本人不懈努力,终于全部解决了,现在分享给大家我的方法。 乱码的原因是各个地方用的编码格式不统一,所以把他们设成统一的utf8. 1.电脑的编码格式 开始-设置-时间和语言-语言和区域 管理语言设置-更改系统区域设置-勾选Bata版:使用utf8-确定-然后按指示重启 2.vscode

解决Office Word不能切换中文输入

我们在使用WORD的时可能会经常碰到WORD中无法输入中文的情况。因为,虽然我们安装了搜狗输入法,但是到我们在WORD中使用搜狗的输入法的切换中英文的按键的时候会发现根本没有效果,无法将输入法切换成中文的。下面我就介绍一下如何在WORD中把搜狗输入法切换到中文。

PDFQFZ高效定制:印章位置、大小随心所欲

前言 在科技编织的快节奏时代,我们不仅追求速度,更追求质量,让每一分努力都转化为生活的甜蜜果实——正是在这样的背景下,一款名为PDFQFZ-PDF的实用软件应运而生,它以其独特的功能和高效的处理能力,在PDF文档处理领域脱颖而出。 它的开发,源自于对现代办公效率提升的迫切需求。在数字化办公日益普及的今天,PDF作为一种跨平台、不易被篡改的文档格式,被广泛应用于合同签署、报告提交、证书打印等各个

sqlite不支持中文排序,采用java排序

方式一 不支持含有重复字段进行排序 /*** sqlite不支持中文排序,改用java排序* 根据指定的对象属性字段,排序对象集合,顺序* @param list* @param field* @return*/public static List sortListByField(List<?> list,String field){List temp = new ArrayList(

Android模拟器的检测

Android模拟器的检测 需求:最近有一个需求,要检测出模拟器,防止恶意刷流量刷注册。 1.基于特征属性来检测模拟器,比如IMSI,IDS,特殊文件等等。 这个方案局限性太大,貌似现在大部分模拟器默认就是修改了的,还不需要人为的去修改。 经过测试,发现如下图所示。 如果是模拟器的话,这些特殊值应该返回true,比如DeviceIDS,Build。可是居然返回了false,说明特殊值

彻底解决win10系统Tomcat10控制台输出中文乱码

彻底解决Tomcat10控制台输出中文乱码 首先乱码问题的原因通俗的讲就是读的编码格式和写的解码格式不一致,比如最常见的两种中文编码UTF-8和GBK,UTF-8一个汉字占三个字节,GBK一个汉字占两个字节,所以当编码与解码格式不一致时,输出端当然无法识别这是啥,所以只能以乱码代替。 值得一提的是GBK不是国家标准编码,常用的国标有两,一个是GB2312,一个是GB18030 GB1

超越IP-Adapter!阿里提出UniPortrait,可通过文本定制生成高保真的单人或多人图像。

阿里提出UniPortrait,能根据用户提供的文本描述,快速生成既忠实于原图又能灵活调整的个性化人像,用户甚至可以通过简单的句子来描述多个不同的人物,而不需要一一指定每个人的位置。这种设计大大简化了用户的操作,提升了个性化生成的效率和效果。 UniPortrait以统一的方式定制单 ID 和多 ID 图像,提供高保真身份保存、广泛的面部可编辑性、自由格式的文本描述,并且无需预先确定的布局。

matplotlib中文乱码问题

在使用Matplotlib进行数据可视化的过程中,经常会遇到中文乱码的问题。显示乱码是由于编码问题导致的,而matplotlib 默认使用ASCII 编码,但是当使用pyplot时,是支持unicode编码的,只是默认字体是英文字体,导致中文无法正常显示,所以显示中文乱码。 文本使用系统默认字体、手动指定字体、使用字体管理器来解决。 一、系统默认字体(全局设置字体) 在Matplotlib中

Java实现Smartcn中文分词

新建一个Maven项目,修改pom.xml文件内容:注意版本的不同; <!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-analyzers-smartcn --><dependency><groupId>org.apache.lucene</groupId><artifactId>lucene-analyzers