【发布时间】:2020-09-16 06:02:35
【问题描述】:
要在 VC++ 中加载 DLL 并调用函数,我们使用 LoadLibrary 和 GetProcAddress ,这需要方法名的错位。它是否实例化一个类对象然后调用该方法?
如果没有,那我如何调用类中的方法,但实例化类的对象,然后调用方法?
VC++中加载.h文件、加载类、实例化对象然后调用方法的过程是什么
【问题讨论】:
-
底层的 C++ 方法只是带有第一个
this参数的函数。 -
我正在尝试编写一个代码,该代码将在运行时询问 DLL 文件的名称和要执行的函数的名称。所以我需要实例化一个类运行时并创建对象并使用该对象来调用该函数。这可能吗?
-
注意:我对 C++ 内部结构不是很熟悉,所以这些只是我的想法。我认为是的,你可以这样做,但由于 C++ 没有标准化的 ABI,每个编译器都可以(并且确实)将类方法和字段定位在不同的偏移量处。在特定的编译器版本中,如果您有类定义,这可能会起作用。
-
使用代码 sn-p 指向它的任何指针?这真的很有帮助。
-
@Joulukuusi - 你的第一条评论,C++ 构造函数没有
this参数,因为在构造之前没有没有this。
标签: visual-c++ dll