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

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

 2010-03-14 22:12:00 来源:WEB开发网   
核心提示:{case SMARTPHONEV1:case SMARTPHONEV2:idd=IDD_SMARTPHONE;break;case POCKETPCV1:case POCKETPCV2:idd=IDD_POCKETPC;break;default:idd=IDD_HPC;break;}return DialogBox

{

case SMARTPHONEV1:

case SMARTPHONEV2:

idd=IDD_SMARTPHONE;

break;

case POCKETPCV1:

case POCKETPCV2:

idd=IDD_POCKETPC;

break;

default:

idd=IDD_HPC;

break;

}

return DialogBox(hInst,MAKEINTRESOURCE(idd),

hWndMain,(DLGPROC)StartDlgMain);

如果您使用资源的 Condition 属性,请在 condition 字段中放入“WIN32_PLATFORM_WFSP”(对于 Smartphone)和“WIN32_PLATFORM_PSPC”(对于 Pocket PC)。请记住 Palm-size PC(Pocket PC 的前身)和最近出现的 Pocket PC 2003 与 Smartphone 有相同的定义,所以如果您想加以区分,您需要创建自己的定义。如果您试图保持二进制文件/可执行文件的平台无关性,您必须对不同平台使用不同资源,但将二者都包含在资源文件中。

四、动态加载 Pocket PC 和 Smartphone 的特定库

如果希望可以使一个二进制文件在两个平台上都能运行,任何时候加载以下 DLL 的其中一个时,请确保使用“LoadLibrary”和“GetProcAddress”,而不是将 DLL 静态链接到应用程序:

? AYGSHELL.DLL (AYGSHELL.LIB/AYGSHELL.h)。包含所有 SIP、SH… 和其他特定于 Pocket PC 的函数。该 DLL 也可用于 Smartphone,但有不同的功能集。

? CELLCORE.DLL (CellCore.LIB/TSP.h and others)。这个 DLL 只存在于 Pocket PC 2002 Phone Edition 和 Smartphone,而不存在于 Pocket PC 2000。它包含了用于连接管理器和进行电话呼叫的所有函数。

在运行时加载这些 DLL 可以让您开发一些智能的错误处理,它仍然允许应用程序在不具备这些库所提供的功能的情况下运行。如果这些库在编译过程中静态链接,则在 Pocket PC 2002 上应用程序甚至不会启动,因为它试图加载这些 DLL 并给出错误“One or more components are missing”。

如果您只想使源代码保持同步,您不需要这样做;而可以将这些库链接到编译过程中。然而要注意,每次在 Pocket PC 2000 和 Pocket PC 2002 编译过程间切换时,都必须手动取出 cellcore.lib。

五、不要假设有触摸屏

Smartphone 没有触摸屏,而 Pocket PC 没有数字键可以点击,但这两种设备都支持 D-pad 的类似于键盘的导航。因此,如果您想保持源代码同步,所有需要导航的用户输入都应该通过 D-pad 导航来实现。Pocket PC 中的菜单是通过触摸屏激活的,而在 Smartphone 中是通过热键激活的。但因为平台会为您处理该输入,所以您不需要为此担心。

上一页  1 2 3 

Tags:简化 Windows Mobile

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