在Windows Mobile平台的开发过程中,开发者可能会面临一些挑战,尤其是当使用旧版本的Visual Studio时。尽管Visual Studio 2003/2005提供了强大的集成开发环境(IDE),但随着时间的推移,这些工具逐渐被新的IDE所取代。对于许多共享软件开发者来说,购买Visual Studio 2005的标准版可能并不现实,而且Express版并不支持移动开发,这限制了在Windows Mobile平台上的开发选择。在大多数情况下,使用旧技术是可行的,但随着时间的推移,缺乏支持的问题开始显现。
最近,在为Windows Mobile5平台编写代码时,意识到可能需要在每个新项目中重复这些更改。显然,这是使用项目向导从代码模板创建标准化项目的理想情况。项目向导通常可以在IDE中开始新项目时在“项目”标签下找到。
首先通过Google搜索来了解如何创建自己的项目向导。经过几次无果的搜索后,决定采取不同的方法。尝试在硬盘上搜索“Hello World”这个词,因为大多数Pocket PC应用程序向导都会创建一个简单的Hello World类型的应用程序。搜索最终引导找到了一些位于特定文件夹下的AWX文件。
在文本编辑器中查看这些文件后,发现这些文件是二进制的,因此不能简单地在文本编辑器中编辑以满足需求。使用十六进制编辑器查看文件时,注意到向导生成的代码实际上是可见的,并且可以编辑以满足需求,但进行大量更改将非常困难和繁琐。
通过进一步的搜索,发现了一篇1997年的旧文章,讲述了如何为Visual C++创建向导。文章揭示了项目向导的正确术语是AppWizard。有趣的是,AppWizard文件实际上只是带有AWX扩展名的特殊MFC DLL文件。要生成它们,需要使用向导创建一个特殊项目(编译后将成为一个新的向导)。所有这些操作都是在Visual C++内部完成的。
有趣的是,EVC的第二张光盘上有一个向导,用于创建新的向导(以及所需的库和头文件)。该向导仅在Visual Studio(即VC++)中运行,因为它生成了一个x86 DLL,该DLL由EVC IDE运行。
AWX格式显然有更多的内容,例如$$root$$宏值(这是一个占位符,用于从IDE中输入的项目名称),但这方面的文档几乎不存在(尽管MSDN文章确实涵盖了其中的一些内容)。
AWX文件实际上是MFC DLL文件。DLL中的“魔法”实际上是一个名为“TEMPLATE”的资源类型。模板类型包含了模板中使用的所有原始代码(即任何cpp、h、资源文件等)。可以使用任何资源编辑器编辑或替换这些资源。
不会详细介绍如何使用资源编辑器,因为大多数开发者已经熟悉它。基本上,资源编辑器可以用来交换、提取、编辑或删除编译的DLL或EXE中的资源。最喜欢的资源编辑器是ResHacker,这是一个很棒的免费产品。尽管自2002年以来没有更新,但它是一个伟大的应用程序,发现它是开发者的必备工具。