任何一个学过编程的朋友都对HELLO不会陌生,但这次的这个和以前的不太一样,它是一个特别的程序,不是在功能上,是在思想上。这是一个非常经典的程序,本不想列出这个程序,但这是WINCE编程的典型框架,写出它可以让我们对WINCE的程序有一个很直观的认识。还有一个重要的原因是,这个例子程序给出了一个新的代码风格,和以前的WIN32程序有所不同,我十分欣赏这种代码的或者说程序结构,因此便再一次将这个程序写出。不过我做了一些小小的变动。主要的目的:
1、了解WINCE程序的结构和原理
2、欣赏并学习一种非常优美的代码风格
3、了解使用EVC编写WINCE程序的方法(介绍IDE)
打开eMbedded VC++选择新建。
怎么样界面和VC6差不多吧。我们选择WCE Pocket PC 2002 Application,在项目名称处输入HelloCE,检查CPUS是否选中了ARM和X86。这个应该根据你的开发环境有所不同。就我而言,首先要在PC机上进行调试,然后编译成适合我使的应用程序,我的PPC是ARM CPU所以我需要WCE X86和WCE ARM,至于其它的例如MIPS或SH我并没有考虑。(如果你要开发商用软件或者想让更多的人使用你的程序,你应该考虑更多种类的CPU。)好进行下一步:

我们选择一个空的项目。单击完成。好了我们看到EVC已经为我们建立了一个应用程序框架,当然在这个例子,它是空的。不过我们也可以在目录下找到下图显示的几个文件。

好我们向我们的项目中添加一个头文件HelloCE.h和一个HelloCE.c文件。它们被我列在下面:你可以直接拷贝,不过需要注意一些讨厌的格式(例如空格)造成的编译错误。不过最好的办法是手工的输入,它们并不算长。
//====================================================================== // Header file:helloce.h //====================================================================== // 返回元素的数量,主要用于搜索消息列表 #define dim(x) (sizeof(x) / sizeof(x[0])) //---------------------------------------------------------------------- //数据类型定义 // struct decodeUINT { //消息和消息函数的关联结构 UINT Code; LRESULT (*Fxn)(HWND, UINT, WPARAM, LPARAM); //这里用到了函数指针 }; struct decodeCMD { //菜单和处理函数的关联结构 UINT Code; LRESULT (*Fxn)(HWND, WORD, HWND, WORD); //这里用到了函数指针 };
//---------------------------------------------------------------------- #define IDC_CMDBAR 1 // 命令条ID
//---------------------------------------------------------------------- // 函数原型 // int InitApp (HINSTANCE); //初始化应用函数原型 HWND InitInstance (HINSTANCE, LPWSTR, int); //初始化实例函数原型 int TermInstance (HINSTANCE, int); //实例终止函数原型 // 窗口处理函数原型 LRESULT CALLBACK MainWndProc (HWND, UINT, WPARAM, LPARAM); // 消息句柄 LRESULT DoCreateMain (HWND, UINT, WPARAM, LPARAM); LRESULT DoPaintMain (HWND, UINT, WPARAM, LPARAM); LRESULT DoHibernateMain (HWND, UINT, WPARAM, LPARAM); LRESULT DoActivateMain (HWND, UINT, WPARAM, LPARAM); LRESULT DoDestroyMain (HWND, UINT, WPARAM, LPARAM);
//======================================================================
上一篇:最有“钱”途的编程—数据库编程
下一篇:SunONE Studio5开发MIDP程序
|