日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【摘录】BREW应用的c++实现注意点

發(fā)布時(shí)間:2023/12/13 c/c++ 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【摘录】BREW应用的c++实现注意点 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

BREW應(yīng)用的c++實(shí)現(xiàn)注意點(diǎn)?從VC6.0的調(diào)試器來說吧,肯定支持C++語言了,對(duì)于ARM或者GCC來說,也是有可用的C++編譯器,而且任何支持BREW的手機(jī)都可以運(yùn)行通過ARM或者GCC編譯連接出來的目標(biāo)代碼,所以從環(huán)境來說,BREW開發(fā)是可以應(yīng)用C++語言的。

?? ? 做過BREW開發(fā)的都知道,不論是用IWINDOW還是StateMachine,都是應(yīng)用的C語言,而且編譯器也是采用的C編譯器,而對(duì)于具有優(yōu)良思想的面向?qū)ο蟮腃++語言卻應(yīng)用的不多。

?? ? 其實(shí)BREW開發(fā)是完全支持C++語言的。

??? 但是我們一般所見到的BREW例子都是用C寫的,對(duì)于C++的例子所見不多。而且對(duì)于C++的BREW需要做更多的事情,比如定義符重載等,下面我就對(duì)一般的C++語言開發(fā)BREW做一下簡(jiǎn)要分析。

??? 若要讓一個(gè)用C++語言寫的BREW程序運(yùn)行起來,必須要完成下面的一些步驟:

1、C++頭文件中類定義:
//cppapp.h

#ifndef _cppapp_h_
#define _cppapp_h_

//類定義
class CPPApp : public AEEApplet
{
}

#endif

2、在類定義前,#include將需要引用的頭文件引入:

#include "AEEAppGen.h"//主體類繼承AEEApplet
#include "AEEModGen.h"

#include "AEEMenu.h" //類cppapp中定義IMenuCtl接口成員變量
------------------------------------------------------------

3、程序主體類應(yīng)繼承AEEApplet作為其子類:class CPPApp : public AEEApplet


4、事件處理機(jī)制的類封裝如下:

(a)
cppapp.h中:

{
public:
? static boolean? HandleEvent(CPPApp * pCPPApp, AEEEvent eCode,uint16 wParam, uint32 dwParam);
? //事件處理公共接口,靜態(tài)類型???? CPPApp * pCPPApp引用pCPPApp->OnEvent();
? static void freeAppData(CPPApp * pCPPApp);
? static boolean? InitAppData(IApplet *pIApplet); // static類型??便于brew c模式的調(diào)用??

protected:
? boolean? OnAppInitData(); //Onxxxxxx:表示類封裝的xxxxxx事件處理,保護(hù)成員
? //初始化程序數(shù)據(jù),可通用?
? void???? OnAppfreeData();
? //釋放程序分配資源,通用機(jī)制
? boolean? OnEvent(AEEEvent eCode, uint16 wParam, uint32 dwParam);
? //主體類封裝的事件處理
}

(b)
cppapp.cpp中:

boolean CPPApp::HandleEvent(CPPApp *pCPPApp, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{???
? return pCPPApp->OnEvent(eCode, wParam, dwParam);
}

結(jié)論:1,主體類保護(hù)成員OnEvent(AEEEvent,uint16,uint32)封裝類對(duì)事件的響應(yīng);
????? 2,主體類靜態(tài)公共接口HandleEvent,類中調(diào)用onEvent完成事件響應(yīng);


5、C++中程序入口,事件處理機(jī)制的注冊(cè):

extern "C"?
? // 便于brew c模式的調(diào)用??
? //AEEClsCreateInstance只能在c模式下被brew調(diào)用作為程序入口??
int AEEClsCreateInstance(AEECLSID clsID, IShell* pIShell, IModule* pIModule, void **ppobj)
? //各參數(shù)是brew框架傳入值
{
?if(clsID == AEECLSID_CPPAPP)
?{
? if(!AEEApplet_New(sizeof(CPPApp), clsID, pIShell, pIModule, (IApplet**)ppobj,(AEEHANDLER)CPPApp::HandleEvent,
?? (PFNFREEAPPDATA)CPPApp::freeAppData))
??????????????????????? //注冊(cè)c++中實(shí)現(xiàn)的事件處理和程序數(shù)據(jù)釋放函數(shù)
?? return EFAILED;
???????????????????????????
? if (!CPPApp::InitAppData((IApplet *)*ppobj))
??????????????????????? //初始化程序數(shù)據(jù)
?? return EFAILED;

? return SUCCESS;
?}
?return EFAILED;
}


6、主體類的cppapp.cpp文件中頭文件引入:

#include "cppapp.h"???
#include "otherclass.h" //引入需要的c++類頭文件

#include "cppapp.bid"? //AEEClsCreateInstance中的clsID的判斷

#include "AEEStdlib.h" //引入類實(shí)現(xiàn)中引用的如STRCPY等助手函數(shù)所在的頭文件

#include "cppapp_res.h" //類實(shí)現(xiàn)中引用resorceID,引用資源

7、在非主體類cpp文件中頭文件引入:

#include "otherclass.h"

#include "AEEStdLib.h" //引入類實(shí)現(xiàn)中引用的如STRCPY等助手函數(shù)所在的頭文件

#include "cppapp_res.h" //類實(shí)現(xiàn)中引用resorceID,引用資源

8、bar資源文件的引入:


9、非主體類中聲明brew接口變量,引入相應(yīng)頭文件:

#include "AEEDisp.h" //類中聲明IDisplay*接口成員


-----------------
#include "AEEShell.h"?
-----------------
Writer(IShell* pIShell);?
{
-----------------
??? ISHELL_CreateInstance(pIShell, AEECLSID_DISPLAY, (void **)&m_pIDisplay);
??? //Writer使用的參數(shù)IShell* pIShell來自“#include "AEEShell.h"”,創(chuàng)建m_pIDisplay,下面直接引用;
-----------------
??? IDISPLAY_EraseRgn(m_pIDisplay, 0, 0, m_di.cxScreen, m_di.cyScreen);
??? //引用已創(chuàng)建成員變量;
-----------------
}

10、#define的使用:
??? cpp中#define不能被其它c(diǎn)pp引用,some.h中#define若some.h被其它other.h引入,可在other.cpp中使用

轉(zhuǎn)載于:https://www.cnblogs.com/IamEasy_Man/archive/2010/08/09/1795542.html

總結(jié)

以上是生活随笔為你收集整理的【摘录】BREW应用的c++实现注意点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。