开发平台(Platform): (Ex: Win10, Linux, ...)
Windows 7
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
C++ Builder BCB build dll, MinGW build dll function caller
问题(Question):
Hello各位版友好,
小弟最近在学习写dll,
关于使用extern "C"写出来的dll,搭配LoadLibrary+GetProcAddress这种基本的用法
我自认大概已经熟了,
但如果今天不写extern "C"并且需要能够使用overload function的话,要如何使用呢?
因为这种explicit link最重要的就是知道function name会如何被mangling,
如果没有了extern "C"又不确定mangling的规则/结果的话,GetProcAddress要怎么填呢?
照我的理解是可以用一个.def档去自己做这种aliasing,但def档的内容是BCB能够帮我
产生出来的吗? 不然又会回到相同的问题,就是我不知道要用什么名字去做aliasing。
但后来想了想要用overloading又要explicit link好像没意义?
另外implicit link的话,include dll的.h档的话MinGW又会报错说找不到这个header档,
还蛮奇怪的,我是放在同个资料夹下面,后来编译还加上-I.的选项却也找不到。
最后想请教dll的学习,有什么特别的网站、文件或者书可以参考的吗?
以我自己在网络上找的资料总是觉得刚开始不知道在做什么,看完之后又太过零散或者
重复了,还有工具的影响又太大了 (不少都是默认本来就用VC++在写的,不太考虑相容
性问题啊...)
想知道有没有整套可以学会的材料可以看,特别是针对这篇提问的overload
function或者是class的部分,谢谢!