我正在尝试做这样的事情:
创建一个对象并将其成员函数绑定到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/

10-09 20:14
查看更多