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

作者: nepholi (我不是砲哥)   2018-12-10 11:00:39
開發平台(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
作者: flyfoxy (飛狐)   2018-12-10 11:57:00
LoadLibrary and GetProcAddress
作者: TeaEEE (愛不趴 不愛趴)   2018-12-10 11:59:00
GetProcAddress
作者: Bencrie   2018-12-10 12:15:00
前兩樓是缺 .lib 的時候可以用如果你知道那些 function 要代什麼參數就自己刻 header吧
作者: F04E (Fujitsu)   2018-12-10 19:05:00
???不是有source code了?自己生個.h會很難?
作者: soheadsome (師大狗鼻哥)   2018-12-10 20:04:00
nm去找symbol
作者: Killercat (殺人貓™)   2018-12-11 01:14:00
dll的load有兩種 一種是靜態 一種是動態 你的是後者另外該dll如果是managed dll 可以直接用#import.COM的DLL也能#import 可以看你需求怎麼弄
作者: tinlans ( )   2018-12-11 02:39:00
寫一行 #import 然後去找找有沒有 .tlh 和 .tli 檔跑出來
作者: TobyH4cker (Toby (我要當好人))   2018-12-11 10:55:00
managed 都出來了 cool

Links booklink

Contact Us: admin [ a t ] ucptt.com