我的应用程序需要从C程序调用部分C ++代码 当我必须获得公共职能的地址时,问题就出现了 我不知道如何从班级获得公共职能的地址 我特别需要地址,以便我可以将地址作为函数指针传递 任何其他绕过解决方案的解决方案也是受欢迎的 我已经尝试过静态铸造,但它没有用。
static_cast<izot_events*>(thisizot_events)->myIzotWink()
这会调用该函数,但我对该地址感兴趣 我尝试过使用
static_cast<izot_events*>(thisizot_events)->myIzotWink
但这会返回错误 这里还有一些代码供参考。
void* C_Create() { return new izot_events(); }
thisizot_events = C_Create();
static_cast<izot_events*>(thisizot_events)->myIzotWink // This does not work i.e I cant get the value.
static_cast<izot_events*>(thisizot_events)->myIzotWink() // While this gets called
答案 0 :(得分:0)
让函数变为静态,然后你可以做&amp; MyClass :: my_function。你不应该做任何演员;而是让你的静态函数具有正确的声明来匹配函数指针的类型。