如何编写windows ce结构的应用程序

如何编写windows ce结构的应用程序,第1张

我选择编写的这一应用程序,虽然相对简单,但你却可以从中知道怎么去编写比较复杂的程序(比“Hello World.”复杂)。这一应用程序包括属性页和属性表,即所说的TAB控件,它含有自定义的图标和跳格符,能把参数选择保存到注册表中。

程序开发的一个关键之处是保持和微软用户界面相一致的特性。在开发过程中我尽可能的采用了微软的应用程序的字体和布局,商业开发人员更应该为他们的Windows CE应用程序设计出优美的界面。

获取代码

可以从这里下载这一例程的源代码

类结构

所有的代码加起来也有几千行,共分为5个文件。我选择用微软基础类库(MFC)来实现,软件也具有很好的扩展性。

CCNETConfig:这是程序的主线程,它起动与注册表的连接,建立与CPageTab1, CPageTab2, and CPageTab3的关联,然后利用属性表生成模态对话框,CCNETConfig是独立的。

CPropertySheet: CpropertySheet类基本上是空的,当你点击不同的标签时,MFC会处理不同的属性页,CpropertySheet也是独立的。

CPageTab: CpageTab类包含了与各自标签相关的代码,它完成属性页上数据的保存,传递,校验。

在默认状态下,Embedded Tools软件上传应用程序到/Windows/Start Menu目录下。如果你把应用程序上传到/Windows/Start Menu/Settings目录下,在文件夹中也可以找到图标。

这一结构程序具有三个属性页,如图C所示。CPageTab1处理的是与数据更新相关的任务,CpageTab2处理参数选择相关的任务,CpageTab3传送到cnet.com的任务。

从整体上看,程序并不是很复杂。程序员可以很容易地把代码移植到诸如无线802.11b驱动程序上。

每一个类都有它的特有成员变量表,这些变量能够通过MFC’s DDX保持编译环境的设置。在每一属性页的OnInitDialog函数中都执行UpdateData(FALSE)事件,然后在OnKillActive事件中通过UpdateData(TRUE)校验并把参数保存到注册表。

当OnKillActive事件被触发时程序就会把所有的信息保存到注册表,即使在程序发生异常的时候。而函数OnInitDialog则是对程序进行了初始化。

通过利用资源编辑器,我建立了如图D所示的三个属性表。标题栏遵循了其他程序的设计标准,标题栏下面的文字也采用了其他程序的字体和颜色。

字体下面的直线是采用1bit位图实现并当成一幅图片,除此之外,我还添加了检查框,静态文本框,编辑框,组合框等。

自定义静态文本框的字体和风格

为了获取静态文本框的合适字体,必需在CpageTab类中触发WindowProc事件,而只要发送WM_CTLCOLORSTATIC消息就可以更换静态文本框中的当前字体和字体的颜色了。

WM_CTLCOLORSTATIC把hDC和hWnd传送到静态文本框,在函数中的这些变量如Listing A.所示。

你可以看到,我使用了一个静态变量来生成字体,然后重载这一指针变量就可以更改这些字体。如果你不想改变字体,即不要重载PropertyPages中的WindowProc事件,代码的其他部分都会正常运行。

除了要生成合适的字体外,我还注重把界面设计成具有Windows CE系统专业的水平。

生成带有属性页的属性表

对于以上我生成的附带属性页的属性表,你一定会迷惑这一整个过程。我只是采用了MFC向导来自动生成四个独立的类,其中一个是派生于CpropertySheet类,其他三个是派生于CpropertyPage类。在CWinApp::InitInstance事件中,我在属性表中增加了属性页,如图Listing B所示。

我还举例说明了怎么样从CPropertySheet 和 CpropertyPage而不是从CPropertySheet 和CpropertyPage派生出对象。

我初始化了所有的变量并把页和表关联起来,之后调用DoModal事件就可以生成模态对话框。

当InitInstance返回FALSE,MFC不再执行窗体消息循环。我可以通过使用CPropertySheet::Create()而不是使用CPropertySheet::DoModal()来生成一个非模态对话框。如果我这样做,程序就返回TRUE,窗体消息循环就会进行。如果生成一个非模态对话框而返回FALSE,就会退出消息循环。

访问注册表

为了保存信息到注册表中,程序必需执行CpageTab类中的OnInitDialog和OnKillActive事件。Listing C中的代码说明了这一过程。

MFC能自动访问注册表,这一过程程序执行了GetProfileInt, GetProfileString, WriteProfileInt, 和 WriteProfileString函数。

图E显示了如何把界面上的参数选择和注册表入口关联起来。我采用EMbedded Tools 3.0软件中的Windows CE远程注册表编辑器来查看远距离设备上的注册表。

CE认证流程

此流程适用于厂商找第三方实验室申请CE认证的流程:

1. 制造商相关实验室(以下简称实验室)提出口头或书面的初步申请。

2.申请人填写CE-marking申请表,将申请表,产品使用说明书和技术文件一并寄给实验室(必要时还要求申请公司提供一台样机)。

3. 实验室确定检验标准及检验项目并报价。

4. 申请人确认报价,并将样品和有关技术文件送至实验室。

5. 申请人提供技术文件。

6. 实验室向申请人发出收费通知,申请人根据收费通知要求支付认证费用。

7. 实验室进行产品测试及对技术文件进行审阅。

8. 技术文件审阅包括:

a文件是否完善。

b文件是否按欧共体官方语言(英语、德语或法语)书写。

9.如果技术文件不完善或未使用规定语言,实验室将通知申请人改进。

10.如果试验不合格,实验室将及时通知申请人,允许申请人对产品进行改进。如此,直到试验合格。申请人应对原申请中的技术资料进行更改,以便反映更改后的实际情况。

11.本页第9、10条所涉及的整改费用,实验室将向申请人发出补充收费通知。

12.申请人根据补充收费通知要求支付整改费用。

13.实验室向申请人提供测试报告或技术文件(TCF),以及CE符合证明(COC),及CE标志。

14.申请人签署CE保证自我声明,并在产品上贴附CE标示。

认证周期:1-2周

FDA认证流程

1. 准备阶段

企业法人执照复印件;

生产(卫生)许可证,合格证复印件;

企业简介(成立时间,技术力量,主要产品极其性能,资产状况)。

2. 技术初审申报受理

递交DMF(药物主文件)和SOP(标准 *** 作程序)的英译本文件给代理商;

根据代理商的意见,对上述文件进行修改。

3. DMF资料审阅

FDA认真审核,并到工厂实地考察,检查DMF文件所写是否属实;

若FDA未发现重大差错,并认为符合要求,则提出预批准检查计划。

4. FDA检查

FDA检查官对工厂进行检查,提问,工厂必须一一回答;

若有疑问,官员会给出“483”表(整改建议书),问题严重,则不给“483”表。

5. FDA签发“批准信”

必须认真回答“483”表上检查官提出的问题,若有问题,必须立即改正并证明;

检察官未搞清楚的问题,需解释证明

如何使用CE来修改游戏并制作一个修改器

CE是一款内存修改工具 ,它允许你修改你的游戏或软件内存数据,以得到一些其他功能,如修改游戏里的金钱。与同类修改工具相比,它具有强大的反汇编功能,而且自身附带了修改器制作工具,可以用它直接生成修改器。

首先下载CE,地址在参考资料里面。打开后启动Cheat Engine.exe和练习软件Tutorial.exe

打开之前最好关闭杀毒软件,杀毒软件可能会误报。

windows vista和win 7用户请按右键选择“以管理员身份运行”

打开CE后可能会出现“想研究一下练习教程吗?”点“否”

在愚人节(4月1日)那天CE会出现一个小笑话,请不要理睬。

点击CE右上角的闪动的小电脑图标。

在d出的框里选择Tutorial.exe的进程

恭喜你,教程的第一关过了,点击下一步。

所有程序所显示的数值都存在内存里。本关的要求是将健康值改为1000,现在这个值是100.点击“打我”可以减一些血。

打开CE,在搜索栏里输入100,点击“首次扫描”

这时在左侧的栏里会出现一大堆值,但到底哪个才是我们要找的呢?

回到练习软件,点击“打我”。健康值下降到了97(你的可能不是97)

回到CE,在搜索框内输入你现在的健康值,点击再次扫描(一定是再次扫描!)

这次就只找到了一个,如果不是一个,就重复第9、10步,知道只有一个值为止。

双击这个值,可以看到这个值被移动到了下面。

下面就到了激动人心的时刻!双击这个“97”把它改为1000!

恭喜!过关!你已经掌握了修改大部分游戏的能力!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7799366.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存