Windows Mobile 版本的判断

更多wince/wm相关请参考一下论坛 http://www.surfingcenter.cn/forumdisplay.php?fid=9, 也欢迎各位到该论坛提问答疑.

有时候在写WM上程序时需要对不同的WM版本做不同的处理, 于是这就需要判断出不同的版本来. sdk提供了一个api, 让开发者获知运行该程序的系统版本.

   BOOL GetVersionEx(
    LPOSVERSIONINFO lpVersionInformation
   );
  
这个api很简单, 没啥好说的. 主要是这个结构体

   typedef struct _OSVERSIONINFO{
    DWORD dwOSVersionInfoSize;
   DWORD dwMajorVersion;
   DWORD dwMinorVersion;
    DWORD dwBuildNumber;
   DWORD dwPlatformId;
   TCHAR szCSDVersion[128];
   } OSVERSIONINFO;
  
dwOSVersionInfoSize 这个结构的大小, 使用之前, sizeof(OSVERSIONINFO)赋值给它就是了.
dwMajorVersion 主版本号
dwMinorVersion 次版本号
dwBuildNumber 编译时的版本标记
dwPlatformID 操作系统的标识, 在mobile系统上这个值都是 VER_PLATFORM_WIN32_CE, 及wince系统
szCSDVersion 附加说明, 字符串格式.从我测试的情况看, 好像都是空字符串.

这里的版本号实际上指的的wince的版本号, 而不是我们熟悉的什么 wm2003, wm5, wm6之类的.
比如说 DOPOD D600 上的系统版本号 5.1.422 . dwMajorVersion 对应的是5; dwMinorVersion 对应的是1; dwBuildNumber对应的是422 .


判断sp还是ppc, 则需要用到另外一个函数:

BOOL SystemParametersInfo(
UINT uiAction,
UINT uiParam,
   PVOID pvParam,
UINT fWinIni
);

这个函数的使用也很简单, 要获取系统平台, 将uiAction传进参数SPI_GETPLATFORMTYPE, uiParam是pvParam的大小, pvParam是接收数据的buf, fWinIni设为0即可.

如果pvParam传出的值是"Smartphone", 则表示是sp, 否则是ppc.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值