我想在我的c++项目中加载Dll,但是问题是我没有正在使用的Dll的源代码。所以我无法在dll中修改任何内容,例如添加导出def文件,或为dll导出c方法。有什么解决办法吗?

尝试过加载库功能,并成功加载了Dll。

如何在没有def文件的情况下调用dll中的函数,或导出c方法?

最佳答案

您需要知道DLL为您提供了什么。您应该获得带有结构定义(如果有)和函数原型(prototype)(包括调用约定)的头文件。

您可以使用dumpbin /exports TheDll.dll获取导出函数的列表。您应该进一步使用dumpbin命令检查它专用的CPU。这样可以避免32/64位的麻烦。

您可以使用LoadLibrary API函数加载任何兼容的DLL(32/64)。包括适当的标题以获取原型(prototype)。

您可以使用GetProcAddress函数获得指向导出函数的指针。如果您具有函数签名,则可以使用此指针来调用函数。

09-27 01:48
查看更多