WEB开发网
开发学院手机开发Windows Mobile 开发 简化 Windows Mobile 代码维护的编程技巧 阅读

简化 Windows Mobile 代码维护的编程技巧

 2010-03-14 22:12:00 来源:WEB开发网   
核心提示:为了使应用程序的维护和支持工作尽可能少,开发人员希望使计划支持的平台都用统一的源代码,简化 Windows Mobile 代码维护的编程技巧,甚至希望可以使一个二进制文件在两个平台上都能运行,以下技巧将有助于您实现这个目标,在程序运行时检查平台的版本,这样就可以根据判断来进行不同的操作,一、检查平台的版本在编译时确定平

为了使应用程序的维护和支持工作尽可能少,开发人员希望使计划支持的平台都用统一的源代码,甚至希望可以使一个二进制文件在两个平台上都能运行,以下技巧将有助于您实现这个目标。

一、检查平台的版本

在编译时确定平台的版本,那样可以使用同一套源代码来在编译时适应不同平台二进制文件。

在程序运行时检查平台的版本,这样就可以根据判断来进行不同的操作,使用同一个二进制文件能运行在不同的平台上。

#define POCKETPCV1 1

#define SMARTPHONEV1 2

#define POCKETPCV2 3

#define SMARTPHONEV2 4

int MyDeviceType()

{

TCHAR szPlatform[MAX_STRING_BUFFER];

int iDeviceType=0;

OSVERSIONINFO osVer;

GetVersionEx(&osVer);

if (osVer.dwMajorVersion==3)

{

if (SystemParametersInfo(SPI_GETPLATFORMTYPE,

sizeof(szPlatform),szPlatform,0)!=0)

{

if (lstrcmp(szPlatform,TEXT("PocketPC"))==0)

iDeviceType= POCKETPCV1; // runs on Pocket PC 2000 and 2002

else if (lstrcmp(szPlatform,TEXT("Smartphone"))==0)

iDeviceType= SMARTPHONEV1; // runs on Smartphone 2002

}

else

{

if (GetLastError()==ERROR_ACCESS_DENIED) //(5)

iDeviceType= SMARTPHONEV1; // is a smartphone:

// Smartphone creates an access denied error on

// SystemParametersInfo()

}

}

else

{

if (osVer.dwMajorVersion==4)

{

if (SystemParametersInfo(SPI_GETPLATFORMTYPE,

sizeof(szPlatform),szPlatform,0)!=0)

{

if (lstrcmp(szPlatform,TEXT("PocketPC"))==0)

iDeviceType= POCKETPCV2; // runs on Pocket PC 2003

else if (lstrcmp(szPlatform,TEXT("Smartphone"))==0)

iDeviceType= SMARTPHONEV2; // runs on Smartphone 2003

}

else

{

if (GetLastError()==ERROR_ACCESS_DENIED) //(5)

1 2 3  下一页

Tags:简化 Windows Mobile

编辑录入:coldstar [复制链接] [打 印]
赞助商链接