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

posts - 13,comments - 0,trackbacks - 0
摘自:http://m.shnenglu.com/franksunny/archive/2008/05/16/50083.html

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

?

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

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

?

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

?

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

靜態(tài)接口的DLL

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

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

的時(shí)候有用。

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

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

?

DLL編寫(xiě)者的角度來(lái)看,DLL可以被看成是一個(gè)完整的Symbian項(xiàng)目。它由以下幾部分組成:

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

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

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

?

頭文件

DLL的頭文件與其它類(lèi)的頭文件的頭文件非常類(lèi)似。不同的地方在于使用了IMPORT_C宏來(lái)定義所有導(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();

}

?

實(shí)現(xiàn)文件

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

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

2另外一個(gè)特殊的宏,EXPORT_C,應(yīng)該加在每個(gè)導(dǎo)出函數(shù)實(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)該有以下特點(diǎn)

1)定義項(xiàng)目(project)的類(lèi)型是dll

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

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

例如:

TARGET??????? MyEngine.dll

TARGETTYPE??? dll

UID?????????? 0x1000008d

...

EXPORTUNFROZEN

?

DLL接口定稿(Freezing DLL

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

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

abld freeze [platform]

例如

?1bldmake?? bldfiles;??

?2abld?? build? gcce;??

?3abld?? freeze gcce;?

注意:

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

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

一旦項(xiàng)目已經(jīng)定稿,重新生成makefile,這時(shí)候?qū)氲?/span>lib會(huì)直接通過(guò)定稿的.def文件生成。
posted on 2009-04-29 09:59 收藏也是種愛(ài)好 閱讀(257) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): Symbian編程
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久精品五月天| 欧美日韩成人激情| 亚洲国产成人不卡| 久久久亚洲国产天美传媒修理工| 欧美一区二区黄| 欧美在线观看视频在线| 欧美一区二区三区四区高清 | 先锋影音网一区二区| 亚洲欧美日韩在线| 欧美一区二区三区免费视频| 久久精品视频在线免费观看| 久久综合色播五月| 欧美视频二区| 国产偷久久久精品专区| 影音先锋日韩有码| 在线视频你懂得一区二区三区| 亚洲欧美日韩在线综合| 久久久久久自在自线| 欧美激情1区2区| 亚洲一区久久| 免费亚洲电影| 国产精品久久国产愉拍| 伊人成人开心激情综合网| 夜夜嗨av一区二区三区中文字幕| 性久久久久久久久久久久| 亚洲一区二区在线播放| 亚洲人久久久| 亚洲国产精品成人综合| 亚洲毛片在线观看| 亚洲人体偷拍| 中文久久精品| 久久国产一二区| 欧美吻胸吃奶大尺度电影| 久久亚洲精选| 欧美1区免费| 国产精品一二三视频| 亚洲黄色av一区| 久久本道综合色狠狠五月| 欧美韩日精品| 久久精品亚洲| 国产一区二区三区网站 | 日韩网站在线观看| 久久综合免费视频影院| 亚洲一卡二卡三卡四卡五卡| 欧美国产日本在线| 在线激情影院一区| 久久视频在线免费观看| 亚洲一级高清| 国产精品你懂的在线欣赏| 亚洲免费观看高清在线观看 | 在线中文字幕日韩| 亚洲激情在线观看| 免费亚洲一区二区| 最新日韩在线| 免费日韩av| 每日更新成人在线视频| 在线不卡免费欧美| 欧美国产日韩视频| 男男成人高潮片免费网站| 亚洲第一色中文字幕| 美女国产一区| 蜜臀av在线播放一区二区三区| 一区二区亚洲| 欧美freesex8一10精品| 久久久久久久尹人综合网亚洲| 国产主播一区二区三区四区| 久久精品日韩欧美| 久久久久综合网| 1024国产精品| 女仆av观看一区| 欧美黄色大片网站| 在线亚洲伦理| 亚洲一区在线免费观看| 国产视频在线观看一区二区三区| 久久精品视频免费观看| 久久全球大尺度高清视频| 亚洲视频成人| 亚洲欧洲在线免费| 欧美性猛交xxxx乱大交蜜桃 | 欧美a级片一区| 久久男人资源视频| 99国产精品久久| 亚洲欧美日韩天堂| 午夜一区二区三区在线观看 | 欧美一区二区三区在线| 黑人一区二区三区四区五区| 美女脱光内衣内裤视频久久网站| 久久久精品国产99久久精品芒果| 亚洲国产精品久久久久秋霞蜜臀| 亚洲国产专区校园欧美| 国产精品日本精品| 欧美成人午夜| 国产精品视频自拍| 欧美国产视频一区二区| 欧美精品激情| 久久久国际精品| 欧美日韩123| 看片网站欧美日韩| 国产精品国产三级国产aⅴ9色| 久久久久久穴| 欧美午夜精品伦理| 亚洲第一网站| 国产日韩欧美二区| 亚洲精品美女| 在线观看日韩欧美| 午夜精品久久久久久久99热浪潮| 亚洲精品四区| 久久五月天婷婷| 久久激情视频免费观看| 欧美视频在线不卡| 亚洲人体1000| 亚洲美女91| 欧美91福利在线观看| 久久亚洲美女| 国产一区二三区| 亚洲女人天堂成人av在线| 99亚洲视频| 欧美二区在线看| 欧美成人一区二区三区片免费| 国产精品中文在线| 一本色道久久综合一区| 日韩一区二区精品在线观看| 久久婷婷蜜乳一本欲蜜臀| 欧美尤物巨大精品爽| 欧美三区在线视频| 亚洲精品综合精品自拍| 亚洲精品久久久一区二区三区| 久久精品视频在线免费观看| 久久久久久精| 狠狠爱www人成狠狠爱综合网| 亚洲欧美一区二区三区在线| 亚洲综合日韩在线| 国产精品九九| 久久婷婷国产综合精品青草 | 亚洲性视频网站| 国产亚洲一区二区三区在线播放| 免费在线日韩av| 久久久久久久久久久久久女国产乱 | 亚洲在线一区二区| 在线国产精品一区| 久久综合九色九九| 免费在线欧美视频| 在线观看欧美日韩| 久热精品在线| 亚洲欧洲另类| 亚洲午夜久久久| 国产精品视频一区二区高潮| 午夜在线a亚洲v天堂网2018| 久久九九热免费视频| 狠狠狠色丁香婷婷综合激情| 久久综合九色综合久99| 亚洲三级影片| 亚洲午夜精品久久| 国产精品在线看| 快射av在线播放一区| 91久久国产综合久久蜜月精品| 日韩系列在线| 国产精品一区在线播放| 久久se精品一区二区| 欧美国产精品v| 亚洲午夜精品久久久久久浪潮| 国产精品自在线| 另类尿喷潮videofree| 亚洲精品国产无天堂网2021| 亚欧美中日韩视频| 亚洲黄色在线| 国产精品一区二区欧美| 美日韩精品免费观看视频| 99精品欧美一区二区三区综合在线| 亚洲欧美日韩中文播放| 伊人久久婷婷| 国产精品久久久久久久9999| 久久久99免费视频| 一本在线高清不卡dvd| 美女视频黄 久久| 亚洲欧美清纯在线制服| 亚洲国产成人在线播放| 欧美人与性动交α欧美精品济南到 | 欧美一区二区精品| 另类春色校园亚洲| 一区二区高清视频在线观看| 国产精品永久免费视频| 欧美va天堂在线| 先锋影音一区二区三区| 亚洲精品国精品久久99热| 久久久欧美一区二区| 亚洲欧美成人| 日韩亚洲欧美在线观看| 国语自产精品视频在线看一大j8| 欧美日韩国产综合网 | 午夜精品久久久久久| 亚洲国产成人久久综合一区| 欧美一区二区精美| 99riav1国产精品视频| 韩日成人av| 国产日本欧美视频| 国产精品mv在线观看| 欧美成人一区二区三区| 欧美在线视频全部完| 亚洲天堂偷拍|