Re: [問題] 使用 & 製作 dll的問題

看板C_and_CPP作者 (星空下的鮪魚)時間16年前 (2009/12/25 13:04), 編輯推噓4(402)
留言6則, 5人參與, 最新討論串4/6 (看更多)

12/25 09:23,
你還是需要 FP 的 type, 不然要怎麼接呢? 這些他沒給 .h
12/25 09:23

12/25 09:23,
還是得自己定義吧, 是一樣的意思
12/25 09:23

12/25 09:42,
我覺得需要.h和知道FP的type,是兩件事。
12/25 09:42

12/25 09:43,
知道FP的type,會對GetProcAddress()再轉型成應有的type。
12/25 09:43

12/25 09:44,
而有.h,是直接使用.h裡的定義了~~
12/25 09:44

12/25 09:46,
如果當成一般的pointer來看,GetProcAddress()就像是回傳了
12/25 09:46

12/25 09:46,
void * 這一種pointer回來,而要用的時候再轉型成正確的type
12/25 09:46

12/25 09:53,
看起來是兩件事, 其實在這個地方它的用途是一樣的,
12/25 09:53

12/25 09:54,
終究你需要知道Func / FP的type, 你get回來才能轉型,
12/25 09:54

12/25 09:55,
放.h跟私下溝通好prototype, 意義上其實也滿像了吧@_@"
12/25 09:55

12/25 10:45,
嗯, 問題在於, 再轉形成正確的 type, 這個 type 是什麼?
12/25 10:45

12/25 10:46,
如果你不是從他的 .h 拿, 你也要從手冊裡整理出來弄成很像
12/25 10:46

12/25 10:46,
有一個 .h 裡面定義一堆 prototype 一樣的形式吧
12/25 10:46

12/25 10:46,
這明明就是同一件事呀 XD
12/25 10:46

12/25 10:47,
事實上從手冊裡整理出來是很不好的 coding style
12/25 10:47

12/25 10:47,
今天換一個版本竟然要動到你的 code ?! 這不是很奇怪嗎?
12/25 10:47

12/25 10:49,
要也是置換他給的 header file 就好啦
12/25 10:49

12/25 12:33,
嗯,我想應該是用法有些不一樣吧~~
12/25 12:33

12/25 12:33,
因為我這邊在用的,轉出的dll,還是要包一個class出來,
12/25 12:33

12/25 12:34,
這個class一開始會LoadLibrary,並且取得需要的FP,
12/25 12:34

12/25 12:34,
不用的時候就FreeLibrary了。
12/25 12:34

12/25 12:35,
而dll的作者和該class的作者通常是同一個吧 XDD
12/25 12:35
好像是第一次可以回同一個系列回那麼多次... = w = 而且一直繞著 h的話題~~ 我先整理一下好了,dll分靜態和動態連結兩種。 靜態需要.h, .lib 和.dll,而動態需要 .h, .dll好了。 上面所討論的.h.h是不一樣的東西了… = w = .h是裡面定義了FP的type,也就是像 typedef void (WINAPI *ptrFuncFoo)(); 這類的function pointer的type宣告。 而像.h則是長的像這個模樣的…配合.lib, .dll使用 #ifdef ExportDll #define ExportDll __declspec( dllexport ) #else #define ExportDll __declspec( dllimport ) #endif void ExportDll WINAPI foo(); -- 有多少笑語 就有多少哭泣 幸福的背後 總是隱藏著悲劇 -----摘自 趙寧 --找一個字代替-- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.59.242

12/25 13:28, , 1F
其實應該叫implicit跟explicit link,兩個都是dynamic
12/25 13:28, 1F

12/25 13:29, , 2F
linking。static link應該是說object archives那種。
12/25 13:29, 2F

12/25 14:24, , 3F
看了一下請問大家所說的fp是什麼東西呢@@
12/25 14:24, 3F

12/25 14:29, , 4F
函數指標
12/25 14:29, 4F

12/25 16:33, , 5F
Orz 受教了~~
12/25 16:33, 5F

12/25 23:19, , 6F
H的話題 (誤
12/25 23:19, 6F
文章代碼(AID): #1BD4VcD3 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1BD4VcD3 (C_and_CPP)