在Symbian中動態載入DLL

2021-04-02 21:44:33 字數 2130 閱讀 3973

在symbian中動態載入dll

我想大家對symbian已經有了基本的了解,我就不再介紹了。總起來說,我感覺symbian和windows系統相當的相似,而s60的程式設計框架和mfc又有八分相近。那麼,在windows中我們能動態的引入dll那在symbian中也應該可以。就做了個小測試,過程如下:

一、編寫動態鏈結庫

首先建立乙個工程檔案dlltry.mmp內容如下:

target dlltry.dll

targettype dll

uid 0x1000008d 0x2000118d

sourcepath ../src

source dlltry.cpp

userinclude . ../inc

systeminclude /epoc32/include

library euser.lib

exportunfrozen

建立bld.inf檔案,如下:

prj_mmpfiles

../src/dlltry.mmp

標頭檔案dlltry.h,如下:

#ifndef __dll_try_h

#define __dll_try_h

#ifndef __w32std_h__

#include

#endif

#ifndef __e32std_h__

#include

#endif

#ifndef __e32base_h__

#include

#endif

class cdlltry : public cbase ;

export_c cdlltry* create(); //宣告匯出函式

#endif

**檔案dlltry.cpp,如下:

#include "dlltry.h"

//入口

export_c tint e32dll(tdllreason)

//例項化cdlltry

export_c cdlltry* create()

cdlltry* cdlltry::newl()

cdlltry* cdlltry::newlc()

tbool cdlltry::testmethod()

cdlltry::cdlltry() {}

cdlltry::~cdlltry() {}

void cdlltry::constructl()

然後,編譯,把頭檔案dlltry.h複製到測試程式的inc目錄,把dlltry.dll複製到某一特定目錄(如z:/system下)。

二、實現測試程式

隨便建立乙個工程,在想匯入dll的地方輸入**如下:

rlibrary lib;

tlibraryfunction create= null;           //函式指標

if( lib.load ( _l("dlltry.dll/n") , _l("z://system//") ) != kerrnone)       //動態匯入dll

user::exit( 40 );

//至此,匯入完成!

create=lib.lookup ( 1 );               //獲得第乙個匯出函式

idlltry= (cdlltry*) create(); //利用這個函式例項化cdlltry

if( !idlltry )

user::exit( 41 );

if(!idlltry->testmethod () )

user::exit(43);

1、

在匯出函式前必須加export_c;2、

3、 .dll檔案生成後在d:/symbian/6.1/series60/epoc32/release/wins/udeb類似的目錄下;4、

5、

第乙個uid用來標誌dll檔案,第二個是自己向symbian申請的。

大家自己試一試吧!

最後祝大家身體健康萬事如意!

fly_piggy

2006-3-5

於 天津

在Symbian中動態載入DLL

在symbian中動態載入dll 2008年08月27日 星期三 下午 05 05 我想大家對symbian已經有了基本的了解,我就不再介紹了。總起來說,我感覺symbian和windows系統相當的相似,而s60的程式設計框架和mfc又有八分相近。那麼,在windows中我們能動態的引入dll那在...

也說說Silverlight動態載入DLL

今天手頭的專案遇到乙個問題,為了描述這個問題,我建立了乙個簡單的專案,結構如下 3,如果在ria上啟動新例項進行除錯,可以正常通過。效果是 4,但是在web上啟動新例項進行除錯就會報錯 會提示安全性錯誤。經過反覆測試,還不停的修改策略檔案等,最後確定了是dll的載入路徑的問題,錯誤的寫法有很多,同事...

在程式中動態載入動態庫(win)

以下內容是乙個在windows環境下的程式中載入動態庫的示例。環境 vs 1.生成動態庫 在vs中建立乙個專案,使用下面的 生成乙個動態庫windll.dll。專案建立後在專案的屬性 c c 預處理器中新增預處理巨集win dll exports,這個在windll.件中使用。ifndef win ...