關於動態庫呼叫的問題

2023-01-23 22:25:09 字數 776 閱讀 6224

1樓:匿名使用者

動態呼叫的時候指標名不需要和原dll中函式一樣。基本過程是這樣的:

hmudole hmodle=getmudulehandle("你要使用的dll名字");

proc fun=(proc)getprocaddress(hmodule,"dll中函式名");

然後將fun轉換成你的函式形式,比如你要呼叫的dll中函式是int myfun(int a,int b)你可以這樣轉換:

typedef int (*myfun)(int a,int b);

(myfun)fun(10,20);//然後這樣呼叫函式指標和函式名都是一個指向函式入口地址的指標,函式入口地址是一個4位元組型別的值而已,函式指標指示一個儲存這個值的變數而已,名字只要合法就行,不需要和所指向的函式名一樣,而且,編譯後就沒函式名這概念了。

2樓:何處淬吳鉤

不太明白你的意思。函式指標是你在呼叫程式中自己定義的,名字當然可以與dll中的函式不同。你動態呼叫的話就用getadress(dll模組控制代碼,dll中的函式名)函式了。

函式指標 = getadress(dll模組控制代碼,dll中的函式名)函式了。

getadress好像是這樣的,具體拼寫記不太清楚,我現在手頭沒有vc,自己查下msdn吧。

getprocaddress是這個函式。

3樓:我不知道啊

h1為給dll的控制代碼

hinstance h1 = loadlibrary(...);

if(h1)

關於cad建立動態塊的問題,關於CAD建立動態塊的問題

類似你的序號動態塊問題,我以前弄過,可惜長時間不弄,都忘了。我弄的是機械的表面粗糙度動態塊,插入時,在輸入需要的粗糙度數值。現在就一直用著它。我沒事了在熟悉一下。建立動態塊的步驟 1 單擊 工具 選單 塊編輯器 2 在 編輯塊定義 對話方塊中執行以下操作之一 a.從列表中選擇一個塊定義。b.如果希望...

如何讓linux載入當前目錄的動態庫

可以放在當前目錄下,但是要設定一下庫檔案的路徑 ld library path usr local pet20 lib lib usr local lib export ld library path 這樣,在呼叫的時候就會自動從當前目錄找。如果是顯式呼叫則不用,只要在程式裡指定.so的檔案路徑就可...

C語言動態連結串列的問題,C語言動態連結串列問題

你自己malloc時對頭節點不是動態的 include stdio.h include malloc.h typedef struct node node void main else node head while node 0 8 0 1 0 6 0 2 0 9 0 7 include stdi...