概述
Windows Mobile,是 Microsoft 用于 Pocket PC 和 Smartphone 的软件平台。Windows Mobile 将熟悉的 Windows 桌面扩展到了个人设备中。Windows Mobile是微软为手持设备推出的“移动版Windows”,使用Windows Mobile操作系统的设备主要有PPC手机、PDA、随身音乐播放器等。Windows Mobile操作系统有三种,分别是Windows Mobile Standard、Windows Mobile Professional,Windows Mobile Classic。目前常用版本Windows Mobile 6.1,最新的版本是6.5。
该文档主要用于如何创建工程进行说明
创建工程
1.1 VS2005创建工程
打开“VS2005”
点击右上角“文件”
选择"Visual C++"
选择"智能设备"
1.2 选择模板
1.2.1 ATL 智能设备项目
活动模板库 (ATL) 是一组基于模板的 C++ 类,用以简化 COM 对象的编写。“ATL 智能设备项目向导”以包含 COM 对象的结构创建项目。
ALT的项目也支持MFC,但是只支持动态链接库 (DLL) ,对于可执行文件 (EXE) 是默认不支持MFC。
1.2.2 MFC 智能设备ActiveX控件
使用 MFC 智能设备 ActiveX 控件向导中的此页可为新的 MFC 智能设备 ActiveX 项目设计和添加基本功能。这些设置应用于应用程序本身,不应用于控件的任何特定功能或元素。
1.2.3 MFC 智能设备DLL
DLL 类型
选择要创建的 MFC 智能设备 DLL 的类型。
使用共享 MFC DLL 的规则 DLL
选择此选项将 MFC 库作为共享 DLL 链接到您的程序。使用此选项不能在 DLL 和调用应用程序之间共享 MFC 对象。程序在运行时调用 MFC 库。如果程序由多个使用 MFC 库的执行文件组成,则此选项可降低程序的磁盘和内存需求。Windows CE 和 MFC 程序都可调用 DLL 中的函数。必须将 MFC DLL 与此项目类型一起重新发布。
带静态链接 MFC 的规则 DLL
选择此选项在生成时将您的程序静态链接到 MFC 库。Windows CE 和 MFC 程序都可调用 DLL 中的函数。虽然此选项会增加程序的大小,但不必将 MFC DLL 与此项目类型一起重新分布。不能在 DLL 和调用应用程序之间共享 MFC 对象。
MFC 扩展 DLL
如果希望程序在运行时调用 MFC 库和希望在 DLL 和调用应用程序之间共享 MFC 对象,则选择此选项。如果程序由多个使用 MFC 库的执行文件组成,则此选项可降低程序的磁盘和内存需求。只有 MFC 程序可以在 DLL 中调用函数。必须将 MFC DLL 与此项目类型一起重新发布。
1.2.4 MFC 智能设备应用程序
单文档
用基于 CView 的视图类创建应用程序的单文档界面 (SDI) 结构。可以在向导的生成的类页中更改视图的基类。例如,若要创建基于窗体的应用程序,可以使用视图类的 CFormView。
在此类应用程序中,文档的框架窗口只能容纳框架中的一个文档。
基于对话框
通过基于“CDialog”的对话框类为您的应用程序创建一个基于对话框的结构。
带有文档列表的单文档
基于 CDocList 类为应用程序创建单文档结构。此选项仅在支持此类的平台上可用,如 Pocket PC。
文档/视图结构支持
使用 CDocument Class 和 CView Class 基类在应用程序中包含文档/视图结构(默认)。如果正在移植非 MFC 应用程序,或者如果想减少编译的可执行文件的大小,则清除此复选框。默认情况下,无文档/视图结构的应用程序从 CWinApp Class 派生,不包含用于从磁盘文件中打开文档的 MFC 支持。
资源语言
为资源设置要使用的语言。列表显示系统上由 Visual Studio 安装的可用语言。如果要选择系统语言以外的语言,则必须已经安装了该语言的适当模板文件夹。有关安装“资源语言”列表中默认的可用语言资源之外的语言资源的更多信息,请参见其他语言的向导支持。选择的语言反映在向导的文档模板字符串页的“本地化字符串”选项中。
MFC 的使用
指示如何链接到 MFC 库。默认情况下,MFC 作为共享 DLL 链接。
使用共享 DLL 中的 MFC
将 MFC 库作为共享 DLL 链接到应用程序。应用程序在运行时调用 MFC 库。如果应用程序由多个使用 MFC 库的可执行文件组成,则此选项会降低应用程序的磁盘和内存需求。Windows CE 和 MFC 应用程序都可以调用 DLL 中的函数。
使用静态库中的 MFC
生成时将应用程序链接到静态 MFC 库。
1.2.5 Win32 智能设备项目
控制台应用程序
为应用程序创建控制台应用程序结构。此选项仅在支持控制台应用程序的平台上可用。
DLL
创建用 Visual C 或 Visual C++ 编写的、调用 Windows CE API(而不是 MFC 类)的二进制文件 (DLL)。它与函数的共享库类似,可由多个应用程序同时使用。可以指示 DLL 导出符号。
静态库
生成可执行文件时创建包含链接到程序中的对象(及其函数和数据)的文件。可以将静态库链接到基于 MFC 的程序或者非 MFC 程序。不能向静态库项目添加 ATL 支持。
预编译头
指定静态库项目使用预编译头。
ATL
在项目中内置对设备活动模板库 (ATL) 中类的支持。此选项不可用于静态库项目。
MFC
在项目中内置对设备 Microsoft 基础类 (MFC) 库的支持。
1.3 paltform SDK
选择windows mobile 5.0,或者 windows mobile 6.0。
目前2003几乎绝迹了。
估计WM7 的真机现身后,WM6的份额会大幅度下降。
1.4 应用程序类型
选择单文档:
SDI是单文档的,典型的记事本就是SDI。
MID是多文档的,比如VS2008默认就是多文档的。
DLG是对话框。
一般应用程序都是单文档的,如果你需要具有同时打开很多文档或打开多个不同的工作区的功能,那就可以用多文档。
选择在静态库中使用MFC:
静态库中编译出来的可执行文件拿到其它机器上也可以运行,共享DLL中编译出来的可执行文件在本机上可以执行,若拿到其它机器上就需要相应的动态库支持。
另外,共享DLL下的工程大小会稍小一些,但是在另一台机器上运行时务必保证那一台机器上有动态库支持。
根据以上数据,我们选择单文档,静态库中使用MFC。
1.5 文档模板字符串
基本默认就可以了,如果需要修改,参考:
http://technet.microsoft.com/zh-cn/windowsserver/0z2582zd(VS.80).aspx
1.6 用户界面功能
仅限菜单:
菜单和按钮:
根据以上图示显示,我们选择仅限按钮。
1.7 高级功能
高级功能
在此版本中不支持的功能:
Windows 帮助
打印和打印预览
最近文件列表上的文件数
支持的功能:
ActiveX 控件
支持 ActiveX 控件(默认值)。如果不选择此选项,以后需要向项目插入 ActiveX 控件时,必须在应用程序的 InitInstance 成员函数中添加 AfxEnableControlContainer 调用。
Windows 套接字
支持 Windows 套接字。Windows 套接字允许编写通过 TCP/IP 网络通信的应用程序。
根据我们的需求,这两项都是需要用到的,因此创建工程的时候就添加。
1.8 生成的类
保持默认。
智能设备开发
参考内容:
http://msdn.microsoft.com/zh-cn/library/sa69he4t(v=VS.90).aspx