Q:一个经典的helloworld程序需要几个文件?
2006-08-13 16:51
405 查看
l 一个安装文件bld.inf,这个文件内容很简单,只给出了要编译的工程文件,当然如果有多个工程文件要编译,可以直接写到后面如x.mmp。
PRJ_MMPFILES
HelloworldApp.mmp
x.mmp
l 一个工程文件helloworldApp.mmp,这个文件列出了工程需要的所有文件和用到的库,还有UID等。
TARGET HelloworldApp.app
TARGETTYPE app
TARGETPATH \system\apps\helloworldapp
UID 0x100039CE 0x0a3c7184
USERINCLUDE ..\inc
SYSTEMINCLUDE \epoc32\include
SOURCEPATH ..\src
SOURCE HelloworldApp.cpp
SOURCEPATH ..\data
RESOURCE HelloworldApp.rss
RESOURCE HelloworldApp_caption.rss
LANG SC
LIBRARY euser.lib apparc.lib cone.lib eikcore.lib eikcoctl.lib avkon.lib
AIF HelloworldApp.aif ..\aif HelloworldAppaif.rss c8 context_pane_icon.bmp context_pane_icon_mask.bmp list_icon.bmp list_icon_mask.bmp
l 一个UID的文件HelloworldApp.uid.cpp,该文件包含了一个程序的uid。
l 一个程序的资源文件helloworldApp.rss, HelloworldApp_caption.rss,这两个文件包含了程序的大多数文本资源。
l 一个程序的头文件HelloworldApp.h和一个程序的源文件HelloworldApp.cpp。
l 一个包文件HelloworldApp.pkg。
l 若干个图片文件在aif目录中。
一个经典的HelloworldApp程序有四个类,并且采用了MVC模式来构建程序,这四个类分别是应用程序类CHelloworldAppApplication,文档类CHelloworldAppDocument,程序界面控制类CHelloworldAppUi和程序界面视图类CHelloworldAppView。
一般情况下,一个经典的HelloworldApp程序包含的头文件有:
#include <eikapp.h> // CEikApplication
#include <eikdoc.h> // CEikDocument
#include <coecntrl.h> // CCoeControl
#include <uikon.hrh> // Command codes
#include <eikenv.h> // CEikonEnv
#include <eiklabel.h> // CEikLabel
#include <aknappui.h> // CAknAppUi
#include <aknnotewrappers.h> // CAknInformationNote
CHelloworldAppApplication继承自CEikApplication,
CHelloworldAppDocument继承自CEikDocument,
CHelloworldAppView继承自CCoeControl,并使用了CEikLabel类,
CHellowroldAppUi继承自CAknAppUi。
uikon.hrh文件包含了控件界面的命令映射,aknnotewrappers.h文件包含了一个显示提示信息的便签类CAknInformationNote(有点类似于VC中的MessageBox)。
下面是四个类的声明代码:
//----------------------------------------------------------------------------
// CHelloworldAppApplication
//----------------------------------------------------------------------------
class CHelloworldAppApplication : public CEikApplication
{
private: // From CEikApplication
CApaDocument* CreateDocumentL();
private: // From CApaApplication (via CEikApplication)
TUid AppDllUid() const;
};
//----------------------------------------------------------------------------
// CHelloworldAppDocument (Model)
//----------------------------------------------------------------------------
class CHelloworldAppDocument : public CEikDocument
{
public: // Constructor
CHelloworldAppDocument(CEikApplication& aApp);
private: // From CEikDocument
CEikAppUi* CreateAppUiL();
};
//----------------------------------------------------------------------------
// CHelloworldAppAppUi (Controller)
//----------------------------------------------------------------------------
class CHelloworldAppAppUi : public CAknAppUi
{
public: // Constructors and destructor
void ConstructL(void); // 两段构造
~CHelloworldAppAppUi(); // 为什么要用虚的
private: // From CEikAppUi
void HandleCommandL(TInt aCommand); // 处理按键命令
private: // Data
CHelloworldAppContainer* iAppContainer;
};
//----------------------------------------------------------------------------
// CHelloworldAppContainer (View)
//----------------------------------------------------------------------------
class CHelloworldAppContainer : public CCoeControl, MCoeControlObserver
{
public: // Constructors and destructor
void ConstructL(const TRect& aRect);
~CHelloworldAppContainer();
public: // New functions
public: // From CCoeControl
void SizeChanged();
TInt CountComponentControls() const;
CCoeControl* ComponentControl(TInt aIndex) const;
void Draw(const TRect& aRect) const;
public: // From MCoeControlObserver
void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
private: // Data
CEikLabel* iLabel; // example label
CEikLabel* iToDoLabel; // example label
};
PRJ_MMPFILES
HelloworldApp.mmp
x.mmp
l 一个工程文件helloworldApp.mmp,这个文件列出了工程需要的所有文件和用到的库,还有UID等。
TARGET HelloworldApp.app
TARGETTYPE app
TARGETPATH \system\apps\helloworldapp
UID 0x100039CE 0x0a3c7184
USERINCLUDE ..\inc
SYSTEMINCLUDE \epoc32\include
SOURCEPATH ..\src
SOURCE HelloworldApp.cpp
SOURCEPATH ..\data
RESOURCE HelloworldApp.rss
RESOURCE HelloworldApp_caption.rss
LANG SC
LIBRARY euser.lib apparc.lib cone.lib eikcore.lib eikcoctl.lib avkon.lib
AIF HelloworldApp.aif ..\aif HelloworldAppaif.rss c8 context_pane_icon.bmp context_pane_icon_mask.bmp list_icon.bmp list_icon_mask.bmp
l 一个UID的文件HelloworldApp.uid.cpp,该文件包含了一个程序的uid。
l 一个程序的资源文件helloworldApp.rss, HelloworldApp_caption.rss,这两个文件包含了程序的大多数文本资源。
l 一个程序的头文件HelloworldApp.h和一个程序的源文件HelloworldApp.cpp。
l 一个包文件HelloworldApp.pkg。
l 若干个图片文件在aif目录中。
一个经典的HelloworldApp程序有四个类,并且采用了MVC模式来构建程序,这四个类分别是应用程序类CHelloworldAppApplication,文档类CHelloworldAppDocument,程序界面控制类CHelloworldAppUi和程序界面视图类CHelloworldAppView。
一般情况下,一个经典的HelloworldApp程序包含的头文件有:
#include <eikapp.h> // CEikApplication
#include <eikdoc.h> // CEikDocument
#include <coecntrl.h> // CCoeControl
#include <uikon.hrh> // Command codes
#include <eikenv.h> // CEikonEnv
#include <eiklabel.h> // CEikLabel
#include <aknappui.h> // CAknAppUi
#include <aknnotewrappers.h> // CAknInformationNote
CHelloworldAppApplication继承自CEikApplication,
CHelloworldAppDocument继承自CEikDocument,
CHelloworldAppView继承自CCoeControl,并使用了CEikLabel类,
CHellowroldAppUi继承自CAknAppUi。
uikon.hrh文件包含了控件界面的命令映射,aknnotewrappers.h文件包含了一个显示提示信息的便签类CAknInformationNote(有点类似于VC中的MessageBox)。
下面是四个类的声明代码:
//----------------------------------------------------------------------------
// CHelloworldAppApplication
//----------------------------------------------------------------------------
class CHelloworldAppApplication : public CEikApplication
{
private: // From CEikApplication
CApaDocument* CreateDocumentL();
private: // From CApaApplication (via CEikApplication)
TUid AppDllUid() const;
};
//----------------------------------------------------------------------------
// CHelloworldAppDocument (Model)
//----------------------------------------------------------------------------
class CHelloworldAppDocument : public CEikDocument
{
public: // Constructor
CHelloworldAppDocument(CEikApplication& aApp);
private: // From CEikDocument
CEikAppUi* CreateAppUiL();
};
//----------------------------------------------------------------------------
// CHelloworldAppAppUi (Controller)
//----------------------------------------------------------------------------
class CHelloworldAppAppUi : public CAknAppUi
{
public: // Constructors and destructor
void ConstructL(void); // 两段构造
~CHelloworldAppAppUi(); // 为什么要用虚的
private: // From CEikAppUi
void HandleCommandL(TInt aCommand); // 处理按键命令
private: // Data
CHelloworldAppContainer* iAppContainer;
};
//----------------------------------------------------------------------------
// CHelloworldAppContainer (View)
//----------------------------------------------------------------------------
class CHelloworldAppContainer : public CCoeControl, MCoeControlObserver
{
public: // Constructors and destructor
void ConstructL(const TRect& aRect);
~CHelloworldAppContainer();
public: // New functions
public: // From CCoeControl
void SizeChanged();
TInt CountComponentControls() const;
CCoeControl* ComponentControl(TInt aIndex) const;
void Draw(const TRect& aRect) const;
public: // From MCoeControlObserver
void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
private: // Data
CEikLabel* iLabel; // example label
CEikLabel* iToDoLabel; // example label
};
相关文章推荐
- 多个文件合并成一个大文件后,无法打开,需要从以下几个方面找出问题?
- 002_010 Python 处理字符串中的Zip文件 你的程序收到了一个字符串,内容是一个ZIP文件,需要读取zip文件的信息
- 编写一个程序,将文件打包,在需要解包。可以得到你想要的打包中的文件。
- ASP网站数据采集程序制作:一个采集入库生成本地文件的几个FUCTION(可用来生成HTML静态网页)
- 给朋友写了一个从脚本文件逐行加载执行SQL语句的程序,现在分享给将来需要的朋友们参考
- 给朋友写了一个从脚本文件逐行加载执行SQL语句的程序,现在分享给将来需要的朋友们参考
- 一个经典的文件拷贝程序
- 编写一个程序,使其从标准输入读取字符,直到遇到文件结尾。对美个字符 程序需要检查并报告改字符是否是一个字母。如果是报告字母在字符表中的位置,否则返回-1
- 一个自认为比较经典的层次文件目录遍历程序
- 一个glut程序至少需要以下几个lib
- 给朋友写了一个从脚本文件逐行加载执行SQL语句的程序,现在分享给将来需要的朋友们参考
- 现在为了让程序兼容vista,我们需要给程序加上一个manifest文件,可是有时候vc6它就会弹出Resource Compiler Error RC2170 的错误,可能是vc6一个bug,我个人对vc6还是很喜欢的,不过经常会有编译死掉或出错的问题,
- ASP网站数据采集程序制作:一个采集入库生成本地文件的几个FUCTION(可用来生成HTML静态网页)
- 给朋友写了一个从脚本文件逐行加载执行SQL语句的程序,现在分享给将来需要的朋友们参考
- ssh 中要在系统中加入一个新的对象需要动的几个文件。
- ASP网站数据采集程序制作:一个采集入库生成本地文件的几个FUCTION(可用来生成HTML静态网页)
- 如何把一个文件压缩成几个固定大小的文件及解压缩
- C#像运行一个exe 程序一样运行一个dll文件
- 一个自动copy文件到指定目录的小程序
- 编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔