看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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
flyfoxy: LoadLibrary and GetProcAddress 12/10 11:57
TeaEEE: GetProcAddress 12/10 11:59
Bencrie: 前兩樓是缺 .lib 的時候可以用 12/10 12:15
Bencrie: 如果你知道那些 function 要代什麼參數就自己刻 header吧 12/10 12:16
F04E: ???不是有source code了?自己生個.h會很難? 12/10 19:05
soheadsome: nm去找symbol 12/10 20:04
Killercat: dll的load有兩種 一種是靜態 一種是動態 你的是後者 12/11 01:14
Killercat: 另外該dll如果是managed dll 可以直接用#import 12/11 01:14
Killercat: .COM的DLL也能#import 可以看你需求怎麼弄 12/11 01:15
tinlans: 寫一行 #import 然後去找找有沒有 .tlh 和 .tli 檔跑出來 12/11 02:39
TobyH4cker: managed 都出來了 cool 12/11 10:55