推 christianSK:1. MYLIBDLL是否有define決定 01/03 23:01
→ christianSK:2. 該如果撰寫是什麼意思? 01/03 23:02
→ jackace:回答2:用LoadLibrary 動態載入 lib在執行到LoadLibaray時 01/03 23:02
→ jackace:才被載入到記憶體 用include lib若不指定靜態連結 程式庫 01/03 23:03
→ jackace:是在OS load你的程式的時候幫你一起載入並連結 01/03 23:04
→ jackace:用include lib指定靜態連結的話 程式庫直接編進你的程式 01/03 23:05
推 purpose:*.lib 沒有分指不指定靜態連結吧,都是直接連結進*.exe內 01/03 23:23
→ purpose:只不過 dll 用的 *.lib 只是幫忙動態連結,裡面沒程式碼 01/03 23:24
→ pigcat1315:1樓大大...@@ 還是不太懂 01/03 23:31
推 christianSK:compile的時候或者是code其他部分是否有定義MYLIBDLL 01/03 23:50
推 jackace:痾..我的lib不是*.lib的意思是dll library 有點誤導抱歉 01/04 01:52
→ pigcat1315:那如果定義了MYLIBDLL 是import 還是export? 01/04 01:56
推 EdisonX:話說那個 #ifdef MYLIBDLL 怪怪的.. 有重覆定義之可能.. 01/04 02:02
漏了抱歉
※ 編輯: pigcat1315 來自: 111.240.168.229 (01/05 03:22)
推 EdisonX:那答案應該明顯了吧 @@ 有定義 MYLIBDLL_APP 時是 import, 01/05 10:19
→ EdisonX:沒定義時是 export 01/05 10:19
→ firose:export 是做 DLL 輸出用的, import 是使用端用的, 優化呼叫 01/05 12:08
→ firose:dllimport 可以直接編成 IAT 呼叫, 沒有會多一個中間步驟 01/05 12:19
主要會不懂是還有幾點, 1.當我有在dll 先#define MYLIBDLL_APP xxx會變export對吧
但AP 也還是能呼叫,這樣有差異嗎? 2. 網路上我也看了文章,是指有import
編碼會較好 ,會少2個jump? 不過在VS上沒寫import dll是不會編譯過
3.AP 中我如果也先 #define MYLIBDLL_APP 會有差異嗎? ,
我測試的檔案能使用此DLL ,但不知有沒有差異性
※ 編輯: pigcat1315 來自: 111.240.168.229 (01/05 14:58)