青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

franksunny的個人技術(shù)空間
獲得人生中的成功需要的專注與堅持不懈多過天才與機會。 ——C.W. Wendte

 

DLLDynamic Link Library)是一段特殊的代碼,它能夠被外部程序在程序運行的時候調(diào)用。在DLL里面的代碼可以同時被許多外部程序共享,而且不會引起手機內(nèi)存的重復(fù)分配。

 

DLL根據(jù)接口的類型Symbian系統(tǒng)支持兩種類型的DLL:靜態(tài)接口DLL和多態(tài)接口DLL

靜態(tài)接口DLL主調(diào)程序啟動的時候被系統(tǒng)自動載入到手機內(nèi)存里面(唯一的例外是如果該DLL是在ROM只讀存儲器里面,那么可以直接通過它的地址進行調(diào)用)。并且如果沒有外部程序使用它了,它將被自動的從內(nèi)存中卸載。靜態(tài)接口DLL在系統(tǒng)內(nèi)提供了一系列唯一的函數(shù)(例如,兩個具有相同導(dǎo)出函數(shù)的DLL在系統(tǒng)中也不會混淆)。靜態(tài)接口DLL具有.dll文件后綴,通常用于在Symbian系統(tǒng)中實現(xiàn)應(yīng)用程序引擎(例如,與UI無關(guān)的代碼)。

 

多態(tài)接口DLL是只帶一個單獨導(dǎo)出函數(shù)的普通DLL,一般都是通過調(diào)用RLibrary::Load()函數(shù)才能被載入到內(nèi)存中,而且在卸載的時候,也最好通過RLibrary::Close()函數(shù)進行卸載。多個多態(tài)接口DLL可以為外部程序?qū)С龆鄠€相同函數(shù)名的函數(shù)。所以,這種DLL通常情況下被廣泛應(yīng)用于實現(xiàn)某個應(yīng)用程序框架功能擴展時候的插件。在Symbian系統(tǒng)中,多態(tài)接口DLL可以有多種不同的文件后綴。其中最著名的一個就是.app結(jié)尾的(應(yīng)用程序),.ldd(邏輯設(shè)備驅(qū)動),.tsy.csy(電話和通信服務(wù)模塊)等等。。。

 

在本文中,我們將只關(guān)注靜態(tài)接口DLL技術(shù),它是你我在開發(fā)中最最常用的DLL類型。我們將以通用DLL的繼續(xù)我們的內(nèi)容。

靜態(tài)接口的DLL

DLL調(diào)用者的角度來看,DLL有三個文件組成:

1)頭文件:.h的文件后綴,可以#include到主調(diào)程序的代碼中去,只有在編譯

的時候有用。

2)導(dǎo)出文件:.lib的文件后綴,可以由主調(diào)程序進行鏈接,這個文件記載了DLL的提供的所有接口函數(shù)名稱和地址。(arm版本中應(yīng)該是dso后綴

3DLL文件本身:.dll的文件后綴包括所有.lib文件記載的接口函數(shù)的具體實現(xiàn),主調(diào)函數(shù)在運行的時候?qū)嶋H調(diào)用和執(zhí)行的部分。

 

DLL編寫者的角度來看,DLL可以被看成是一個完整的Symbian項目。它由以下幾部分組成:

1)項目自己的MMP文件(在bld.inf文件中列出的)

2)一個頭文件,指定了該DLL需要導(dǎo)出的接口

3)源代碼文件,具體導(dǎo)出函數(shù)的實現(xiàn)

 

頭文件

DLL的頭文件與其它類的頭文件的頭文件非常類似。不同的地方在于使用了IMPORT_C宏來定義所有導(dǎo)出函數(shù)

class CMyEngine : public CBase

{

public:

   // These functions are visible by the

   // clients of the DLL and needs to have

   // the IMPORT_C tag

   IMPORT_C static CMyEngine* NewL();

   IMPORT_C static CMyEngine* NewLC();

 

   IMPORT_C void MyPublicMethod();

   IMPORT_C void AnotherPublicMethod();

   ...

private:

   // These functions are not visible by the

   // clients of the DLL and then do not need

   // the IMPORT_C tag

   CMyEngine();

   void ConstructL();

   void SomePrivateMethod();

}

 

實現(xiàn)文件

編寫DLL工作本身沒有什么需要復(fù)雜的地方,但是有兩個重要的地方需要留意:

1E32Dll()函數(shù)必須實現(xiàn)

2另外一個特殊的宏,EXPORT_C,應(yīng)該加在每個導(dǎo)出函數(shù)實現(xiàn)的前面。

例如:

// This function is mandatory for all DLLs

EXPORT_C TInt E32Dll(TDllReason)

{

        return KErrNone;

}

 

// This function is exported: The EXPORT_C tag shall be used.

EXPORT_C void MyPublicMethod()

{

   ...

}

 

// This one is not: The EXPORT_C tag shall not be used.

void SomePrivateMethod()

{

  // Do Something

}

 

MMP文件

DLLMMP文件應(yīng)該有以下特點

1)定義項目(project)的類型是dll

2)使用正確的UID2的值(0x1000008d)

在開發(fā)過程中,你也應(yīng)該通過EXPORTUNFROZEN告訴編譯環(huán)境,DLL接口還沒有定稿,還可以隨時修改

例如:

TARGET        MyEngine.dll

TARGETTYPE    dll

UID           0x1000008d

...

EXPORTUNFROZEN

 

DLL接口定稿(Freezing DLL

一旦你完成了DLL的開發(fā),在你發(fā)行你的DLL版本之前,應(yīng)該把接口定稿(Freezing)這樣可以確定將來發(fā)行的DLL可以向下兼容。

通過將項目的MMP文件中的EXPORTUNFROZEN關(guān)鍵字去掉,用常規(guī)的方法重新建立DLL,來實現(xiàn)DLL庫的定稿。這時候會有“.def文件不存在”的編譯警告信息出現(xiàn),不要緊,繼續(xù)就建立當(dāng)前項目,在項目編譯完畢以后,你可以用如下命令定稿:

abld freeze [platform]

例如

 1bldmake   bldfiles;  

 2abld   build  gcce;  

 3、abld   freeze gcce; 

注意:

這里通常有三個定稿的def文件夾:在二版本中編譯armi時,用abld freeze armi產(chǎn)生的是BMARM文件夾和對應(yīng)的Def;在三版本中編譯gccearmV5時會產(chǎn)生EABI文件夾和對應(yīng)的Def;而用wins時則編譯產(chǎn)生BWINS文件夾和對應(yīng)的Def

另外關(guān)于EXPORTUNFROZEN,有必要再啰嗦兩句:在沒加該關(guān)鍵字的時候,可以進行接口定稿(即產(chǎn)生def文件),但是不能產(chǎn)生lib文件,如此在編譯包含該lib的工程中編譯mmp時會報lib文件找不到的錯誤;加了EXPORTUNFROZEN就能產(chǎn)生lib文件,但是接口就已經(jīng)凍結(jié)了,這個時候再修改接口,新修改的接口就沒有被導(dǎo)引出來(個人總結(jié))。

所有的ARM平臺共享一個.def文件,但是對于wins模擬器和winscw CodeWarrior環(huán)境來說,他們有不同的.def文件。

一旦項目已經(jīng)定稿,重新生成makefile,這時候?qū)氲?/span>lib會直接通過定稿的.def文件生成。



本文很大一塊內(nèi)容屬于轉(zhuǎn)載別人的,但是今天發(fā)布本文是找不到鏈接了,個人只是驗證了下,為下篇EasyDgm使用做下預(yù)備知識
posted on 2008-05-16 20:10 frank.sunny 閱讀(4660) 評論(0)  編輯 收藏 引用 所屬分類: symbian 開發(fā)

常用鏈接

留言簿(13)

隨筆分類

個人其它博客

基礎(chǔ)知識鏈接

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美成人精品| 欧美高清视频一区二区| 国产曰批免费观看久久久| 欧美午夜精品理论片a级按摩 | 久久先锋影音| 蜜臀va亚洲va欧美va天堂| 欧美a级一区| 欧美日韩网址| 国产农村妇女毛片精品久久麻豆| 国产亚洲精品高潮| 亚洲高清不卡在线| 亚洲视频精选| 久久伊人免费视频| 日韩视频一区二区在线观看| 亚洲欧美在线磁力| 麻豆成人精品| 国产精品一区二区三区四区| 狠狠色丁香久久综合频道| 亚洲人线精品午夜| 欧美一区在线看| 欧美国产成人精品| 亚洲一区制服诱惑| 久久福利精品| 激情视频一区二区三区| 亚洲精品日韩在线观看| 亚洲主播在线| 欧美sm视频| 亚洲在线观看视频| 欧美国产高潮xxxx1819| 国产午夜精品一区理论片飘花| 亚洲日本va午夜在线影院| 午夜一区在线| 亚洲精品一区二区在线| 久久久人人人| 国产视频在线观看一区二区三区 | 中日韩男男gay无套| 久久riav二区三区| 99天天综合性| 欧美激情亚洲国产| 在线观看视频一区| 久久国产精品久久久| 亚洲人成人99网站| 久久久99精品免费观看不卡| 欧美日韩三级视频| 亚洲精品九九| 欧美国产精品日韩| 久久午夜精品一区二区| 国产亚洲成av人片在线观看桃| 99视频精品免费观看| 欧美电影在线免费观看网站| 欧美一区二区福利在线| 国产欧美日韩激情| 欧美一级久久| 亚洲小说欧美另类社区| 欧美日本免费| 中日韩男男gay无套| 99re亚洲国产精品| 欧美日韩专区| 亚洲综合色在线| 亚洲网在线观看| 国产精品久久久对白| 亚洲欧美在线免费| 亚洲欧美日韩一区二区三区在线 | 欧美手机在线| 亚洲自拍偷拍福利| 亚洲欧美久久久久一区二区三区| 国产精品久久午夜| 久久精品一区蜜桃臀影院| 欧美一区二区三区久久精品| 国产一区二区三区四区五区美女 | 欧美中文日韩| 欧美在线免费观看| 在线不卡a资源高清| 欧美国产日韩亚洲一区| 欧美成人免费在线观看| 亚洲精品社区| 一区二区三区日韩精品| 国产精品人成在线观看免费 | 午夜亚洲福利| 亚洲欧美激情一区| 国产一区视频网站| 欧美黄色免费网站| 欧美日韩亚洲一区| 久久成人免费视频| 另类综合日韩欧美亚洲| 夜夜嗨一区二区| 亚洲在线视频| 1769国产精品| 99视频有精品| 伊人夜夜躁av伊人久久| 亚洲肉体裸体xxxx137| 国产精品都在这里| 美国十次成人| 国产精品v日韩精品| 久久久夜夜夜| 欧美日韩中文在线| 乱中年女人伦av一区二区| 欧美日韩国产999| 欧美主播一区二区三区美女 久久精品人| 久久精品人人做人人爽| 亚洲天堂成人| 卡通动漫国产精品| 亚洲欧美99| 欧美激情成人在线| 久久综合婷婷| 国产欧美日韩一区二区三区| 亚洲黑丝在线| 激情综合视频| 亚洲欧美日韩天堂一区二区| 一区二区三区免费在线观看| 久久精品免费电影| 欧美专区亚洲专区| 欧美日韩国产区一| 欧美不卡高清| 国语对白精品一区二区| 亚洲图片欧洲图片日韩av| 99综合精品| 欧美91精品| 男人的天堂成人在线| 国产精品一区视频网站| 一本色道久久综合精品竹菊| 亚洲精品欧美极品| 噜噜噜噜噜久久久久久91| 久久琪琪电影院| 国产一级久久| 欧美一区二区三区四区高清 | 久久婷婷国产综合精品青草| 国产精品美女999| 一本色道久久综合一区| 日韩亚洲精品电影| 欧美夫妇交换俱乐部在线观看| 免费在线观看精品| 一区免费观看| 狂野欧美激情性xxxx欧美| 你懂的国产精品| 亚洲电影免费观看高清完整版在线| 欧美一区二区三区视频免费播放| 午夜精品久久久久99热蜜桃导演| 欧美视频一区二区三区四区 | 亚洲国内在线| 久久午夜国产精品| 欧美成人精品高清在线播放| 伊人色综合久久天天| 久久青青草原一区二区| 欧美电影在线观看| 亚洲国产天堂久久综合网| 另类春色校园亚洲| 亚洲激情女人| 在线亚洲精品| 国产精品网红福利| 欧美在线中文字幕| 欧美大片免费久久精品三p| 在线观看日韩国产| 欧美激情视频在线播放| 亚洲毛片在线观看.| 亚洲欧美日韩国产中文| 国内揄拍国内精品少妇国语| 久久精品一区二区三区中文字幕| 免费欧美日韩| 亚洲视频碰碰| 国产一区日韩欧美| 欧美成人午夜免费视在线看片| 亚洲毛片播放| 久久久www成人免费毛片麻豆| 亚洲国产99精品国自产| 欧美另类专区| 西西人体一区二区| 亚洲国产成人久久| 亚洲欧美日韩精品在线| 精品999网站| 欧美日韩综合在线免费观看| 欧美一级在线播放| 亚洲电影第1页| 欧美一级二级三级蜜桃| 亚洲片在线资源| 国产精品一区二区在线| 嫩草伊人久久精品少妇av杨幂| 亚洲免费电影在线观看| 久久亚洲精品一区| 亚洲午夜在线观看视频在线| 狠狠色伊人亚洲综合成人| 欧美日韩国产va另类| 久久精品日产第一区二区| 99精品久久久| 欧美成年人网| 久久精品国产综合| 亚洲午夜免费视频| 亚洲国产人成综合网站| 国产麻豆成人精品| 欧美日韩一区二区免费在线观看| 久久久精品免费视频| 亚洲一区二区三区高清| 亚洲精品欧美日韩专区| 欧美电影免费网站| 久久字幕精品一区| 久久爱91午夜羞羞| 亚洲欧美成人精品| 亚洲一区成人| 一本久道久久久| 亚洲精品四区|