作者nepholi (我不是炮哥)
看板C_and_CPP
标题[问题] 没有.h的dll如何呼叫
时间Mon Dec 10 11:00:39 2018
开发平台(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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1544410842.A.BA8.html
※ 编辑: nepholi (220.136.48.105), 12/10/2018 11:02:02
1F:→ flyfoxy: LoadLibrary and GetProcAddress 12/10 11:57
2F:推 TeaEEE: GetProcAddress 12/10 11:59
3F:推 Bencrie: 前两楼是缺 .lib 的时候可以用 12/10 12:15
4F:→ Bencrie: 如果你知道那些 function 要代什麽参数就自己刻 header吧 12/10 12:16
5F:→ F04E: ???不是有source code了?自己生个.h会很难? 12/10 19:05
6F:推 soheadsome: nm去找symbol 12/10 20:04
7F:→ Killercat: dll的load有两种 一种是静态 一种是动态 你的是後者 12/11 01:14
8F:→ Killercat: 另外该dll如果是managed dll 可以直接用#import 12/11 01:14
9F:→ Killercat: .COM的DLL也能#import 可以看你需求怎麽弄 12/11 01:15
10F:→ tinlans: 写一行 #import 然後去找找有没有 .tlh 和 .tli 档跑出来 12/11 02:39
11F:→ TobyH4cker: managed 都出来了 cool 12/11 10:55