WinCE5.0中应用程序如何直接写屏
以前曾利用GAPI实现应用程序直接操作显示驱动的FrameBuffer,以提高屏幕绘图和视频播放的效率。GAPI依赖于显示驱动,必须在显示驱动中添加相应的接口才能正常使用。如果平台是我们自己定制的,在WinCE5.0中,我们也可以通过另外一种方法来操作FrameBuffer。
以DeviceEmulator为例,我们已经知道FrameBuffer的物理地址是0x30100000,大小为0x100000。那么在应用程序中可以通过如下代码,直接获取操作FrameBuffer的机会。
2 gpLCDBuf = (char*)VirtualAlloc(NULL,0x100000,MEM_RESERVE,PAGE_NOACCESS);
3 VirtualCopy(gpLCDBuf, (void *)(0x30100000/256), 0x100000, PAGE_READWRITE | PAGE_PHYSICAL | PAGE_NOCACHE);
4 memset(gpLCDBuf,0xFF,0x100000);
5 VirtualFree(gpLCDBuf,0,MEM_RELEASE);
以上示例代码是将屏幕刷白,当然也可以将它刷黑,或者其他纯色,这样便可以做一个WinCE5.0下测试LCD的小工具了。
在编译以上代码时,需要包括头文件pkfuncs.h。编译时还可能会出现如下错误,
C:\WINCE600\PUBLIC\COMMON\OAK\INC\pkfuncs.h(1042) : error C2065: 'REG_TYPE' : undeclared identifier
简单的处理方法就是在代码中添加一个宏定义,如下,
#define REG_TYPE DWORD
对话框的全屏显示,可以通过如下代码实现,
2 DWORD dwHeight = GetSystemMetrics(SM_CYSCREEN);
3
4 ::SetWindowPos(this->m_hWnd,HWND_TOPMOST,0,0,dwWidth,dwHeight,WS_EX_TOPMOST);
WinCE5.0中应用程序如何直接写屏相关推荐
- WinCE6.0中应用程序如何直接访问物理空间
在实际开发过程中,经常希望能在应用程序中直接读写设备的物理空间.以前在做WinCE6.0下的MEMMgr时通过秘密加载一个内核态驱动实现了这个需求.但这种方式有一个明显的缺陷,每次读写都必须经由它才能 ...
- 在WINCE5.0中应用CMD(比如运行PING命令)
********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi ...
- 总结——在CCS5.5.0中如何将代码烧写到DSP28335的Flash中
本文转载连接: https://blog.csdn.net/GSH_Hello_World/article/details/52187882 把一个原来是烧写到DSP的片内RAM的程序修改成是烧写到D ...
- 【论文写作】客户端设计与实现中模块程序实现如何写
4.1模块的程序实现 4.3.1 连接管理的程序实现 在用户打开软件后进入主窗体(MFFTP.cs),在连接服务器输入框中输入IP地址.用户名及密码后.先发送IP地址和端口号到服务器,然后对其应答分析 ...
- WINCE5.0和WINCE6.0的内存与系统架构
WINCE5.0和WINCE6.0的内存与系统架构 http://topic.csdn.net/u/20090410/14/75bba2cb-cefc-4ca5-b4f5-4165bbf16006.h ...
- 在WinCE5.0和WinCE6.0下,编译选项介绍
作者:ARM-WinCE 在WinCE5.0中,在"Build OS"菜单中,我们会看到不同的编译选项: "Sysgen","Build and Sy ...
- 在WINCE5.0开始菜单中添加应用程序
首先这篇文章主要参考http://blog.csdn.net/nanjianhui/archive/2009/07/01/4313044.aspx来写的,主要是想深入理解和自己实践一下. 在WinCE ...
- Hhadoop-2.7.0中HDFS写文件源码分析(二):客户端实现(1)
一.综述 HDFS写文件是整个Hadoop中最为复杂的流程之一,它涉及到HDFS中NameNode.DataNode.DFSClient等众多角色的分工与合作. 首先上一段代码,客户端是如何写文件的: ...
- c语言vi运行编译文件,VC++6.0中如何编译运行及调试C语言程序文件.docx
VC++6. 0中如何编译运行调试C语言程序 1?启动VC++6. 0 (如下图) [5>R?*16 00 P"! tptl tub go□賦星糸理技件□中出融Fz " 口仍 ...
最新文章
- 推荐系统(5)—隐语义模型(LFM)
- 还珠格格里的尔泰,重现娱乐圈
- vue/cli 3.0 与 2.0脚手架怎样mock数据
- Origin进行多元线性回归、指数拟合和非线性曲面拟合
- Ansible PLaybook template 模板详解
- LOL手游锤石上线吓坏玩家?英雄设计被吐槽,玩家:还我端游锤石
- .NET 3.5 - DLINQ(LINQ to SQL)之面向对象的添加、查询、更新和删除
- ES6 Map和Set的用法笔记
- 小学学校计算机教室使用计划,小学电脑室工作计划
- AMD规范(RequireJS)、CMD规范(SeaJS)、CommonJS(BravoJS)规范的辨析
- vue3 src/main.js文件配置
- 存储过程返回结果集_PostgreSQL函数返回结果集
- 感谢你遇到的问题(2)
- 数据分析-数据平滑处理
- 虚拟机无法服务器系统安装win7系统,如何解决虚拟机安装Win7系统失败的问题
- 离散数学知识点总结(3):等值演算,16个命题定律 / 基础等价式,重言式的替换规则,证明有效性和可满足性的方法
- 五招防止QQ密码被盗
- 网易云课程:深度学习与PyTorch入门实战
- 计算机底层01-计算机发展史
- SwiftUI 中为什么应该经常用子视图替换父视图中的大段内容?
热门文章
- java smtp 内嵌图片,SMTP 发送内嵌图片 邮件
- [Java工程师面试精选]Redis cluster集群模式的原理
- jQuery 变量数字相加
- base64是哪个jar包的_如何通过一个类名找到它属于哪个jar包?
- 吉大c 语言程序设计奥鹏作业,吉大20春学期《可编程控制器》在线作业一百分...
- LNMP环境搭建(二)集成Nginx与PHP
- bat脚本交互输入_基于winserver操作系统的自动清理Oracle3天前归档日志脚本分享...
- python 利用jieba读取txt文本进行分词后存入新txt
- gram矩阵_ZEN-基于N-gram的中文Encoder
- android tab 悬停效果代码,Android 仿腾讯应用宝 之 Toolbar +Scroolview +tab滑动悬停效果...