欢迎来到天天文库
浏览记录
ID:41033014
大小:32.50 KB
页数:4页
时间:2019-08-14
《简化Windows Mobile代码维护的编程技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、为了使应用程序的维护和支持工作尽可能少,开发人员希望使计划支持的平台都用统一的源代码,甚至希望可以使一个二进制文件在两个平台上都能运行,以下技巧将有助于您实现这个目标。一、检查平台的版本在编译时确定平台的版本,那样可以使用同一套源代码来在编译时适应不同平台二进制文件。在程序运行时检查平台的版本,这样就可以根据判断来进行不同的操作,使用同一个二进制文件能运行在不同的平台上。#definePOCKETPCV11#defineSMARTPHONEV12#definePOCKETPCV23#defineSMARTPHONEV24i
2、ntMyDeviceType(){TCHARszPlatform[MAX_STRING_BUFFER];intiDeviceType=0;OSVERSIONINFOosVer;GetVersionEx(&osVer);if(osVer.dwMajorVersion==3){if(SystemParametersInfo(SPI_GETPLATFORMTYPE,sizeof(szPlatform),szPlatform,0)!=0){if(lstrcmp(szPlatform,TEXT("PocketPC"))==0)iDe
3、viceType=POCKETPCV1;//runsonPocketPC2000and2002elseif(lstrcmp(szPlatform,TEXT("Smartphone"))==0)iDeviceType=SMARTPHONEV1;//runsonSmartphone2002}else{if(GetLastError()==ERROR_ACCESS_DENIED)//(5)iDeviceType=SMARTPHONEV1;//isasmartphone://Smartphonecreatesanaccessden
4、iederroron//SystemParametersInfo()}}else{if(osVer.dwMajorVersion==4){if(SystemParametersInfo(SPI_GETPLATFORMTYPE,sizeof(szPlatform),szPlatform,0)!=0){if(lstrcmp(szPlatform,TEXT("PocketPC"))==0)iDeviceType=POCKETPCV2;//runsonPocketPC2003elseif(lstrcmp(szPlatform,TE
5、XT("Smartphone"))==0)iDeviceType=SMARTPHONEV2;//runsonSmartphone2003}else{if(GetLastError()==ERROR_ACCESS_DENIED)//(5)iDeviceType=SMARTPHONEV2;//isasmartphone://Smartphonecreatesanaccessdeniederroron//SystemParametersInfo()}}}returniDeviceType;}在Smartphone上调用“Syst
6、emParametersInfo()”时,如果Smartphone锁定和应用程序签署的证书,可能会引起“AccessDenied”而失败。因为只有Smartphone才会引起AccessDenied失败,所以您也可以用它作为Smartphone的标记。二、在程序中确定“MyDocument”和存储卡的位置发现存储卡:voidShowFlashCard(){BOOLbContinue=TRUE;HANDLEhFlashCard;WIN32_FIND_DATAlpwfdFlashCard;hFlashCard=FindFirs
7、tFlashCard(&lpwfdFlashCard);if(hFlashCard==INVALID_HANDLE_VALUE)return;while(bContinue){MessageBox(NULL,lpwfdFlashCard.cFileName,TEXT("FindFlash"),MB_OK);bContinue=FindNextFlashCard(hFlashCard,&lpwfdFlashCard);}FindClose(hFlashCard);//Closethesearchhandle.}发现“MyDo
8、cuments”:不同语言版本的WindowsMobile的路径名是不同的,如:英文版是“MyDocuments”简体中文版是“我的文档”德文版是“MeineDokumente”应该使用以下的调用来获取指向MyDocuments的正确路径。SHGetSpecialFolderPath(NULL,s
此文档下载收益归作者所有