我想在我的c ++项目中加载Dll,但问题是我没有使用Dll的源代码。所以我无法修改dll中的任何内容,例如添加导出def文件,或导出dll的c方法。针对这种情况的任何解决方案?
尝试了加载库函数,并成功加载了Dll。
如何在没有def文件的情况下调用dll中的函数,或者导出c方法?
答案 0 :(得分:3)
您需要知道DLL为您提供了什么。您应该获得带有结构定义(如果有)的头文件和包含调用约定的函数原型。
您可以使用dumpbin /exports TheDll.dll
获取导出的函数列表。您应该使用dumpbin
命令进一步检查它的CPU。这避免了32/64位的麻烦。
您可以使用LoadLibrary
API函数加载任何兼容的DLL(32/64)。包括适当的标题以获取原型。
使用GetProcAddress
函数获得指向导出函数的指针。如果你有函数签名,你可以使用这个指针来调用函数。