[問題] 沒有.h的dll如何呼叫

看板C_and_CPP作者 (我不是砲哥)時間6年前發表 (2018/12/10 03:00), 6年前編輯推噓3(308)
留言11則, 8人參與, 6年前最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) Windows10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) Visual Studio 2017 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) N/A 問題(Question): 主管從別的team那邊拿到了一包DLL的source code 說要更改裡面某一個函式的功能 我看了半天改好之後也成功rebuild出 .dll & .lib 想說要自己寫測試exe去呼叫才發現這包dll沒有entry point那支cpp的header 檔案結構大概是 A.cpp (DLLMain在這) A.def A.sln (還有其他VS相關檔案略過) B.cpp B.h C.cpp C.h A.cpp include B.h & C.h A.def寫了 LIBRARY A EXPORTS Fun_a Fun_b Fun_c 餵入的資料(Input): N/A 預期的正確結果(Expected Output): 能夠讓我呼叫dll裡面的Fun_a、Fun_b、Fun_c 錯誤結果(Wrong Output): 沒有A.h不知道怎麼include dll 可能是我不太能理解def的機制??? 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) N/A 補充說明(Supplement): 請指教 謝謝QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.48.105 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1544410842.A.BA8.html ※ 編輯: nepholi (220.136.48.105), 12/10/2018 11:02:02

12/10 11:57, 6年前 , 1F
LoadLibrary and GetProcAddress
12/10 11:57, 1F

12/10 11:59, 6年前 , 2F
GetProcAddress
12/10 11:59, 2F

12/10 12:15, 6年前 , 3F
前兩樓是缺 .lib 的時候可以用
12/10 12:15, 3F

12/10 12:16, 6年前 , 4F
如果你知道那些 function 要代什麼參數就自己刻 header吧
12/10 12:16, 4F

12/10 19:05, 6年前 , 5F
???不是有source code了?自己生個.h會很難?
12/10 19:05, 5F

12/10 20:04, 6年前 , 6F
nm去找symbol
12/10 20:04, 6F

12/11 01:14, 6年前 , 7F
dll的load有兩種 一種是靜態 一種是動態 你的是後者
12/11 01:14, 7F

12/11 01:14, 6年前 , 8F
另外該dll如果是managed dll 可以直接用#import
12/11 01:14, 8F

12/11 01:15, 6年前 , 9F
.COM的DLL也能#import 可以看你需求怎麼弄
12/11 01:15, 9F

12/11 02:39, 6年前 , 10F
寫一行 #import 然後去找找有沒有 .tlh 和 .tli 檔跑出來
12/11 02:39, 10F

12/11 10:55, 6年前 , 11F
managed 都出來了 cool
12/11 10:55, 11F
文章代碼(AID): #1S3TRQke (C_and_CPP)