简化 Windows Mobile 代码维护的编程技巧
2010-03-14 22:12:00 来源:WEB开发网iDeviceType= SMARTPHONEV2; // is a smartphone:
// Smartphone creates an access denied error on
// SystemParametersInfo()
}
}
}
return iDeviceType;
}
在 Smartphone 上调用“SystemParametersInfo()”时,如果Smartphone 锁定和应用程序签署的证书,可能会引起“Access Denied”而失败 。因为只有Smartphone 才会引起 Access Denied 失败,所以您也可以用它作为 Smartphone 的标记。
二、在程序中确定“My Document”和存储卡的位置
发现存储卡:
void ShowFlashCard()
{
BOOL bContinue = TRUE;
HANDLE hFlashCard;
WIN32_FIND_DATA lpwfdFlashCard;
hFlashCard = FindFirstFlashCard (&lpwfdFlashCard);
if (hFlashCard == INVALID_HANDLE_VALUE)
return;
while (bContinue)
{
MessageBox(NULL,lpwfdFlashCard.cFileName,
TEXT("FindFlash"),MB_OK);
bContinue = FindNextFlashCard (hFlashCard,
&lpwfdFlashCard);
}
FindClose (hFlashCard); // Close the search handle.
}
发现“My Documents”:
不同语言版本的Windows Mobile的路径名是不同的,如:
英文版是“My Documents”
简体中文版是“我的文档”
德文版是“Meine Dokumente”
应该使用以下的调用来获取指向My Documents的正确路径。
SHGetSpecialFolderPath(NULL,szTxt,CSIDL_PERSONAL,0);
CSIDL_PERSONAL 请求“My Documents”文件夹以 szTxt (TCHAR) 形式返回。
三、为每个平台使用不同的资源定义
如果您想让相同的二进制文件既可用于 Pocket PC,又可用于 Smartphone,您必须创建两种资源定义,一个平台一种。如果您只想使源代码保持同步,您可以使用资源的“condition”属性来包含正确的资源。
假如您想让二进制文件具有兼容性,您需要在代码中加载 Pocket PC 或 Smartphone 资源:
switch (iDeviceType) // Determined with tip -1- above
更多精彩
赞助商链接