我正在尝试做这样的事情:
创建一个对象并将其成员函数绑定到DLL中的函数。例如,
class A {
private:
int a;
public:
void func_a();
};
从DLL加载时,我想创建一个A对象,并将func_a设置为从DLL加载的函数
A aObj;
(aObj.*func_a)() = getAdr(&s, h, "fmiGetTypesPlatform");
我不知道它的语法,但我的意思是我想设置的结果
getAdr(&s, h, "fmiGetTypesPlatform");
到对象的成员函数
提前致谢。
最佳答案
您正在寻找的是一个函数指针:
class A {
private:
int a;
public:
void (*func_a)();
};
然后,您可以像设置其他任何指针一样设置它。
A aObj;
aObj.func_a = getAdr(&s, h, "fmiGetTypesPlatform");
请注意,引用的函数fmiGetTypesPlatform()是常规函数。它不是类方法(即没有此方法等),并且通过其函数指针进行调用。
(*aObj.func_a)();
关于c++ - 将C++成员函数设置为DLL中的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32924191/