MFC/WinCE
dztai
三年Android App开发经验,一年IOS开发经验,从事过车载、手机、HUD行业。
展开
-
消息钩子使用总结 .
1、 SetWindowsHookEx功能:安装(install)消息钩子。原型:HHOOK SetWindowsHookEx(int idHook,HOOKPROC lpfn,HINSTANCE hMod,DWORD dwThreadId);参数(需要更详细的自己查MSDN):idHook:钩子的类型。可简单赋值为WH_GETMESSAGE。更详细参考MSDN。Lpfn转载 2011-11-03 17:54:38 · 619 阅读 · 0 评论 -
IPhone平滑滚动效果的实现
//=====================================================================//TITLE:// IPhone平滑滚动效果的实现//AUTHOR:// norains//DATE:// Monday 14-June-2010//Environment:// Windows CE转载 2011-11-04 19:01:39 · 486 阅读 · 0 评论 -
Wince读取ini的CIniParse类
//========================================================================//TITLE:// Wince读取ini的CIniParse类//AUTHOR:// norains//DATE:// Monday 22-December-2008//Environment://转载 2011-11-04 19:32:13 · 587 阅读 · 0 评论 -
获取WinCE进程的内存信息
//=====================================================================//TITLE:// 获取WinCE进程的内存信息//AUTHOR:// norains//DATE:// Wednesday 3- February-2010//Environment:// WIN转载 2011-11-04 19:12:25 · 648 阅读 · 0 评论 -
一步一步跟我搭建Windows CE 6.0 R3开发环境
//=====================================================================//TITLE:// 图文并茂:一步一步跟我搭建Windows CE 6.0 R3开发环境//AUTHOR:// norains//DATE:// Tuesday 30- March-2010//Environm转载 2011-11-04 19:09:20 · 928 阅读 · 2 评论 -
如何写优雅的代码(5)--不一样的类用法
//=====================================================================//TITLE:// 如何写优雅的代码(5)--不一样的类用法//AUTHOR:// norains//DATE:// Tuesday 20-April-2010//Environment:// Vis转载 2011-11-04 19:06:15 · 455 阅读 · 0 评论 -
DirectShow和媒体文件
//=====================================================================//TITLE:// DirectShow和媒体文件//AUTHOR:// norains//DATE:// Monday 24-May-2010//Environment:// Windows CE转载 2011-11-04 19:03:55 · 449 阅读 · 0 评论 -
如何写优雅的代码(2)——#define?const?还是enum?
//======================================================================== //TITLE: // 如何写优雅的代码(2)——#define?const?还是enum? //AUTHOR: // norains //DATE: // Tuesday转载 2011-11-04 19:22:34 · 616 阅读 · 0 评论 -
如何写优雅的代码(4)——简单有效地玩转线程
//========================================================================//TITLE:// 如何写优雅的代码(4)——简单有效地玩转线程//AUTHOR:// norains//DATE:// Monday 23- November-2009//Environment:/转载 2011-11-04 19:18:52 · 530 阅读 · 0 评论 -
大话嵌入式CPU的WinCE烧录
//=====================================================================//TITLE:// 大话嵌入式CPU的WinCE烧录//AUTHOR:// norains//DATE:// Friday 16- April-2010//===========================转载 2011-11-04 19:07:13 · 577 阅读 · 0 评论 -
WinCE驱动的动态加载
//=====================================================================//TITLE:// WinCE驱动的动态加载//AUTHOR:// norains//DATE:// Monday 22- February-2010//Environment:// WINDOWS转载 2011-11-04 19:11:04 · 514 阅读 · 0 评论 -
visual C++中最常用的类与API函数
常用类CArchive类:用于二进制保存档案 CBitmap类:封装Windows的图形设备接口(GDI)位图 CBrush类:封装图形设备接口(GDI)中的画刷 CButton类:提供Windows按钮控件的功能 CByteArray类:该类支持动态的字节数组 CCmdUI类:该类仅用于ON_UPDATE_COMMAND_UI处理函数中 CColorD转载 2012-07-02 17:54:28 · 800 阅读 · 0 评论 -
如何写优雅的代码(1)——灵活使用goto和__try:评论反馈
//======================================================================== //TITLE: // 如何写优雅的代码(1)——灵活使用goto和__try:评论反馈 //AUTHOR: // norains //DATE: // Tuesday转载 2011-11-04 19:25:24 · 658 阅读 · 0 评论 -
如何写优雅的代码(1)——灵活使用goto和__try
//========================================================================//TITLE:// 如何写优雅的代码(1)——灵活使用goto和__try//AUTHOR:// norains//DATE:// Thursday 16-July-2009//Environment:转载 2011-11-04 19:23:48 · 702 阅读 · 0 评论 -
如何写优雅的代码(3)——合理选择函数形参
//======================================================================== //TITLE: // 如何写优雅的代码(3)——合理选择函数形参 //AUTHOR: // norains //DATE: // Tuesday 21-July-200转载 2011-11-04 19:20:56 · 530 阅读 · 0 评论 -
如何写优雅的代码(5)——远离临界区噩梦
//========================================================================//TITLE:// 如何写优雅的代码(5)--远离临界区噩梦//AUTHOR:// norains//DATE:// Tuesday 01- December-2009//Environment://转载 2011-11-04 19:17:41 · 726 阅读 · 0 评论 -
结构体等值的比较
//=====================================================================//TITLE:// 结构体等值的比较//AUTHOR:// norains//DATE:// Tuesday 19- January-2010//Environment:// WINDOWS //转载 2011-11-04 19:14:57 · 596 阅读 · 0 评论 -
WinCE的内存泄露
//=====================================================================//TITLE:// WinCE的内存泄露//AUTHOR:// norains//DATE:// Thursday 28- January-2010//Environment:// WINDOWS转载 2011-11-04 19:13:34 · 526 阅读 · 0 评论 -
截断过长字符串为省略号算法
//=====================================================================//TITLE:// 截断过长字符串为省略号算法//AUTHOR:// norains//DATE:// Wednesday 02-June-2010//Environment:// Windows C转载 2011-11-04 19:03:09 · 616 阅读 · 0 评论 -
Windows CE 6.0注册表示例,及注册表监控函数
Windows CE 6.0有4个基本的注册表键值, HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS,其它的都是这4个注册表的子键。我们以一个内建的串口驱动为例,它在注册表文件Platform.reg中的描述如下:[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial]转载 2011-11-03 19:24:26 · 882 阅读 · 0 评论 -
WINCE的电源管理
(1)WINCE电源管理的架构 使用电源管理器,设备可以接收电源状态改变的通知,这个通知是以I/O控制的方式(IOCTL控制码)的方式来和设备驱动通信的。因为I/O控制运行在线程上下文环境中,驱动开发者可以很灵活去实现电源状态的改变。使用I/O控制的方式来管理电源也可以让设备电源状态独立于整体的OS电源状态。转载 2011-11-03 18:58:47 · 520 阅读 · 0 评论 -
WinCE平台上的DMA
CEDDK提供了DMA的相关函数,在CEDDK/DDK_DMA/ddk_dma.c中定义。最有用的就两个函数,HalAllocateCommonBuffer(..)和HalFreeCommonBuffer(..)分别用于为DMA申请和释放内存。(1)首先介绍一下会用到的DMA适配器结构,在ceddk.h中定义,如下:typedef struct _DMA_ADAPTER_OBJECT_转载 2011-11-03 18:55:27 · 499 阅读 · 0 评论 -
VC为什么会输出烫
VC经常输出烫的原因是,在vc的debug编译选项下,栈区的未初始化数据,每一个byte都被设置为0xCC,cccc的汉字编码就是烫。比如:(1)#include #include int main(int argc, char* argv[]){ char c[12]; printf("%s",c); return 0;}转载 2011-11-03 18:11:00 · 865 阅读 · 0 评论 -
全局函数如何访问对话框控件
很多时候我们在一个全局函数中会访问到应用程序控件,由于全局函数不属于具体的某个对话框类,所以它里面是无法直接访问某个对话框,当然也就访问不到对话框控件了。有以下几种情况和对应的处理方式。(1)全局线程函数中利用线程参数访问对话框控件 创建一个对话框后,放置一个进度条,添加对应的控制变量myProgressCt,在CPP添加一个线程控制标志volatile BOOL m_bRun2转载 2011-11-03 19:25:37 · 1299 阅读 · 0 评论 -
控制Windows Mobile的LED之四:多色呼吸LED SN3199的驱动
SN3199是一款多色呼吸的LED驱动控制芯片,用来支持我目前项目上的LED控制。因为项目需求在内核和BOOT LOADER中都需要闪烁,所以用这种One Shot控制的芯片是最有效最省资源的。 芯片采用I2C控制方式,通讯时序如下:以上是典型的读写方式,该芯片还支持地址自加模式,即只要往某地址写入了一系列数据,后续的数据会自动写入接连自加的地址中。时序图如下:所以读转载 2011-11-03 19:22:53 · 669 阅读 · 0 评论 -
Mobile的SD卡升级系统之二:热升级
开机升级主要是通过读取U盘中的内核文件,然后把它替换掉旧的文件就可以了。要实现在系统下应用程序直接调用FMD_ReadSector()和FMD_WriteSector()读写FLASH是不行的。但是可以通过FMD_OEMIoControl()函数来实现。所以要在FMD_OEMIoControl添加我要想要的函数。如下:(1)BOOL FMD_OEMIoControl(DWORD dwIo转载 2011-11-03 19:20:14 · 495 阅读 · 0 评论 -
WinCE EBOOT中的Optional函数和BootPart分析
在WinCE的EBOOT中,有一些函数属于Optional的OEM函数,也就是可选择实现的。这些函数会在BLCOMMON模块中被调用,我们需要在EBOOT中实现它们,然后把实现的函数赋值给BLCOMMON中的相应的函数指针上面就可以了,这样BLCOMMON模块在调用这些Optional函数的时候,会首先检查他们是否为NULL,如果为NULL就不执行,如果不是NULL就运行这些函数。转载 2011-11-03 19:12:48 · 492 阅读 · 0 评论 -
WINCE 音频驱动之二:驱动模型
音频驱动采用Wavedev2模式来实现,这是单层的驱动模式,平台相关的都在hwctxt.h和hwctxt.cpp中,此外还加入了midi支持、software mixer支持、S/PDIF接口、gain class接口、forcespeaker接口等等。 (1)音频系统的软转载 2011-11-03 18:12:38 · 653 阅读 · 0 评论 -
WIFI之三:WIN MOBILE平台上的88W8688驱动
(1)缩写术语OID-object identifierSSID-service set identifier BSS-basic service setESS-extended service setRSSI-received signal strength indicationNIC-Network Interface CardsNDIS-Network Drive转载 2011-11-03 19:01:05 · 1073 阅读 · 0 评论 -
基于线程的WINCE测试程序
在嵌入式开发中,我们通常会碰到需要测试驱动程序完整性效果的地方。比如,一个LED工作在不同模式下会体现不同的特性,由于多种工作模式不容易模拟出来,这个时候我们要使用随机数程序来生成LED全部的工作路径,从而来测试LED驱动的完整性。 在线程中建立随机数执行路径,有两种方式:(1)WaitForSingleObject带无限时间HANDLE Nled_Test_Event;转载 2011-11-03 19:02:10 · 437 阅读 · 0 评论 -
UART之三:PXA平台WIN MOBILE的UART底层
(1)铺垫 PXA270中有三个UART接口,分别叫FFUART、BTUART和STUART。FFUART(FullFunction)拥有8根符合16550A标准的信号线(地线除外)。FFUART可以用来处理任何和UART兼容的通信;接下来是BTUART(BlueTooth),从它的名字可以知道它是推荐给BT(蓝牙)使用的接口,它拥有常用的四根信号线RXD/TXD/CTS/DTR,转载 2011-11-03 19:04:40 · 638 阅读 · 0 评论 -
WIFI之四:WINCE 500上WIFI工具的编写
在 Windows CE 下自带有无线网卡的配置和连接程序,但是如果系统剪裁掉了资源管理器和任务栏,就会导致自带的无线网卡配置程序不能再使用了,那么可以利用微软自带的WZC函数来重新编写一个新工具。 所以设置WIFI,第一步就是要获取这个无线路由器的名称,WINCE 500提供了获取这个名字的API,叫WZCQueryInterfaceEx(),用这个函数需要升级PB补丁到最新版,不转载 2011-11-03 18:59:58 · 849 阅读 · 0 评论 -
WINCE背光驱动
在大多2440开发板WINCE 5.0 的BSP中,SMDK2440/DRIVERS/backlite目录下一般都有背光驱动。开机时确实可以打印"!!!!!!!!!!!! BACKLIGHT ON !!!!!!!!!!!!,如果没有操作大概1分钟后也可以打印!!!!!!!!!!!! BACKLIGHT OFF !!!!!!!!!!!!。但打印 OFF后,就算有触发事件(在触摸屏上点击)也不会打印"转载 2011-11-03 18:56:47 · 538 阅读 · 0 评论 -
USB软硬件知识之五:WINCE USB设备驱动程序导读
随着USB设备的不断增加,我们这些开发人员也就多了对USB设备进行驱动程序开发的工作。通过本文,我希望能让更多的朋友理解Windows CE下对USB设备的驱动模型及样例程序中的实现过程,以样例代码为基础理顺USB设备驱动程序的开发思路。在看样例程序之前,我们就先来看下图: 在此图中,我们可以非常清晰的看到主机和物理外设之转载 2011-11-03 19:27:06 · 728 阅读 · 0 评论 -
Mobile的SD卡升级系统之一:两种升级方式
要实现sd卡升级操作系统发现目前有两种方式,在CE下和在bootloader下都可以实现更新NK。(1)在CE下,可以直接用文件系统API读出NK.bin,放到内存buffer中,在通过DEVICEIOCTL的方式来调用nand驱动的一些接口来直接对nand flash进行写操作。好处:跳过boot section,FAT/FAT32文件系统的解析;对内存大小无要求。缺点:NAND驱动转载 2011-11-03 19:22:06 · 722 阅读 · 0 评论 -
FAT16文件系统格式说明
本文回答了什么是FAT16文件系统,并对它进行很好解析。在嵌入式开发中,一般会在flash中建立该文件系统。在很多DOS系统中也用该文件系统。硬盘上的数据按照不同的特点和作用大致可分5部分:MBR区、DBR区、FAT区、DIR区和DATA区。我们来分别介绍一下: (1)MBR区(主引导扇区) MBR (Main Boot Record),按其字面上的理解即为主引导记录区,位于整个转载 2011-11-03 19:13:58 · 1667 阅读 · 0 评论 -
WINCE的RTC驱动
RTC就是实时时钟(real time clock)。目前大部分32bit处理器都自带RTC模块,也有外接RTC模块的。一般外接的RTC都是通过I2C来访问。如果CPU本身自带RTC,那通过读取内部寄存器就能访问RTC模块。如果是外接的,还要写个I2C的驱动来访问外部RTC模块。(1)主要函数 在WinCE6.0里面,RTC的驱动是在OAL里面实现的,文件名一般都叫rtc.c。在转载 2011-11-03 19:03:24 · 510 阅读 · 0 评论 -
WINCE 音频驱动之一:分类
CE目前有3种音频模式:MDD/PDD、WaveDev2和UAM。这些模式的存在是有历史原因的,下面具体说明一下。首先,这3个模式是使用同一套WaveAPI的驱动接口,在系统中以驱动形式存在,都会导出WAV_Open、WAV_Close等接口。通过IoControl带入IOCTL_WAV_MESSAGE,与waveapi的子系统配合使用。对下都是控制硬件,它们不同之处在于内部的设计。(1)MD转载 2011-11-03 18:54:04 · 612 阅读 · 0 评论 -
编写Wince的APP时出现 'User Stack Overflow' 异常的解决办法
/************************************************************************************************编译环境:vs2005SDK:ApicalAtlasVSDK(A5)目标设备操作系统:Wince 6.0时间:2013-05-03****************************原创 2013-05-03 14:08:27 · 1962 阅读 · 0 评论