Sun virtualbox ' Ubuntu的全屏显示及和XP间的数据共享
环境: 主机XP 虚拟机 Sun virtualbox + Ubuntu[@more@] 一.虚拟机ubuntu的全屏显示 1.安装增强功能包,在虚拟机设置下 点击 安装增强功能(HOST+D) 桌面上会出现 一个光盘文件图标,引用的是virtualbox安装目录下的VBoxGuestAddtions.iso文件 (C:Program FilesSunVirtualBoxVBoxGuestAdditions.iso) 2.打开terminal,进入到/media/cdrom0光驱目录下 sudo sh ./VBoxLinuxAdditions-x86.run 运行后,关闭ubuntu 重启virtualbox,启动Ubuntu 然后将Ubuntu 系统设置中 就会出现1280 *770 这样的分辨率。选择后,ubuntu就
WinDbg来查找wince的bug
下面的地址是介绍如何使用WinDbg来查找wince的bug,即使用wince 生成的kdmp文件了解程序崩溃时的堆栈状况,以及源代码的那行出错了。http://www.windowsfordevices.com/c/a/Windows-For-Devices-Articles/Finding-Windows-CE-bugs-with-help-from-Dr-Watson/[@more@]
Rotate Image
两个介绍图片旋转的站点[@more@]http://www.codeproject.com/KB/graphics/rotatebyshear.aspxhttp://www.leptonica.com/rotation.html
获取SD卡序列号和厂商ID
wince 存储设备有两个名称,一个设备名称CreateFile打开设备获取句柄的时候要用的,如DSK1:一个是存储名称,如Mircosoft Flash Disk见如下数据结构:typedef struct {DWORD cbSize;TCHAR szDeviceName[DEVICENAMESIZE];TCHAR szStoreName[STORENAMESIZE];DWORD dwDeviceClass;DWORD dwDeviceType;STORAGEDEVICEINFO sdi;DWORD dwDeviceFlags;SECTORNUM snNumSectors;DWORD dwBytesPerSector;SECTORNUM snFreeSectors;SECTORNUM snBiggestPartCreatable;FILETIME ftCreated;FILETIME ftLastModified;DWORD dwAttributes;DWORD dwPartitionCo
判断设备驱动有没有被加载的方法
设备就像文件,当设备驱动被加载后,表示该文件已经存在了。所以可以通过判断文件是否存在的方式,去判断设备的驱动有没有被加载。[@more@]每次去打开设备,就是打开已存在的文件,使用OPEN_EXISTING。1.GetFileAttributes if(GetFileAttributes(L"SDG1:") != 0xFFFFFFFF) 获取该设备的属性信息。若设备不存在(驱动没有被加载),就会返回0xFFFFFFFF2.EnumDevices 这个接口列举激活的设备文件名称。用于查询可用的设备。 wcsstr去查找下列表中是否存在所需要的设备。 不确定ActiveDevice加载的驱动,EnumDevices是否能查询出来3
DirectDraw小结
1.链接库动态装载typedef HRESULT (* DIRECTDRAWCREATE)( GUID FAR *lpGUID, LPDIRECTDRAW FAR *lplpDD, IUnknown FAR *pUnkOuter );m_hModule=::LoadLibrary(_T("ddraw.dll"));m_pDirectDrawCreate= (DIRECTDRAWCREATE)::GetProcAddress(m_hModule,L"DirectDrawCreate");静态链接#pragma comment(lib, "ddraw.lib") 调用DirectDrawCreate[@more@]2.GUID的使用直接定义const GUID g_IID_IDirectDraw ={0x9c59509a,0x39bd,0x11d1,0x8c,0x4a,0x00,0xc0,0x4f,0xd9,0x30,0xc5};链接#pragma comment(lib, "
COM套间和线程模型.
在看组件的注册表时,对TreadingModel很不理解,所以网上查阅总结了下。大部分内容摘自《理解 COM 套间》,谢谢原作者。[@more@]套间的提出是为了组件在多线程环境下安全执行,因为有跨线程调用同一个组件方法的状况存在。若该组件接口是线程安全的,则无须套间,否则需要套间的协助,就如窗口过程函数一样,窗口过程本身并不是线程安全的,但是消息队列的机制,保证了窗口过程总是在一个线程中执行,串行地处理消息。Windows的消息机制是通过窗口来实现的,那么一个线程要接收消息,也应该有一个窗口。COM API的设计者在它们的API函数中实
AAC ADTS LATM 格式分析
一、ADTS格式:ADTS的全称是Audio Data Transport Stream。是AAC音频的传输流格式。AAC音频格式在MPEG-2(ISO-13318-7 2003)中有定义。AAC后来又被采用到MPEG-4标准中。[@more@]1. adts_sequence(){ while (nextbits() == syncword) { adts_frame(); }}2. adts_frame(){ adts_fixed_header(); adts_variable_header(); if (number_of_raw_data_blocks_in_frame == 0) { adts_error_check(); raw_data_block(); } else { adts_header_error_check(); for (i = 0; i <= number_of_raw_data_blocks_in_frame; i++) { raw
NAT-网络地址转换
借助于NAT,"内部"网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。 NAT可以借助于某些代理服务器来实现,但考虑到运算成本和网络性能,很多时候都是在路由器上来实现的。 NAT将自动修改IP报文头申的源IP地址和目的IP地址,Ip地址校验则在NAT处理过程中自动完成。有些应用程序将源IP地址嵌入到IP报文的数据部分中,所以还需要同时对报文进行修改,以匹配IP头中已经修改过的源IP地址。NAT不仅完美地解决了lP地址不
EVC编译TCPMP的过程
EVC编译TCPMP的过程[@more@]1.tcpmp下载网址:http://picard.exceed.hu/tcpmp/test/ 下载的压缩包tcpmp.src.0.72RC1.tar.bz22.编译环境:Microsoft eMbedded C++ 4.0 (sp4) -- win32(wce armv4i) debug -- wince5.0 SDK只编译了debug版。Arm汇编器是EVC安装目录下Microsoft eMbedded C++ 4.0/EVC/wce500/bin中的。3.编译过程:1)编译common工程出现以下链接错误:error LNK2019: unresolved external symbol CPUSpeedClk referenced in function CPUSpeed在几个asm汇编文件上加上编译选项以告诉编译器编译规则:armasm -32 -cpu xscale &
wince6.0下的物理地址映射和共享
在wince6.0下,驱动都被放到内核空间下(用户模式驱动除外)。用户进程访问物理地址受到了限制,即用户进程再也不能通过vitrualalloc virtualcopy来完成物理地址的映射。所以用户进程访问物理地址控制外围寄存器只能通过内核驱动来完成。大体的思路如下:[@more@]wince6.0提供了两个升级版的内存分配和映射函数,VirtualAllocEx和VirtualCopyEx,就是在原版的基础之上增加了一个进程句柄函数,所以可以在内核驱动中先获取调用者进程的句柄,再用上述的两个Ex函数,为该进程保留空间和映射物理地址。保留好的空间地址,在内核驱动中和用户进
wince5.0下物理地址访问
在wince5.0下物理地址映射有以下两种方法:[@more@]1.静态映射通过OAL中OEMAddressTable来定义。OEMAddressTable定义了从4GB的物理地址空间到内核512MB未映射的虚拟地址空间的映射关系。内核将会从这个表中创建两个虚拟地址空间段。一个是有缓冲的,一个是没有缓冲的。静态映射的虚拟地址空间只能在内核模式下访问。作为OEMAddressTable的补充,还可以调用CreateStaticMapping来完成物理地址到虚拟地址的映射。函数返回一个未缓冲区域的虚拟地址,当然也只能由内核访问(an uncached memory region)。一个静态映射只能在启动时间(at boot