我不知道我正在尝试做的事情是否可能,但它会很高兴。它将真正证明 C++ 是一门强大的语言。
所以,我有一个 DLL 和一个使用 DLL 导出的函数的 EXE。该函数接受一个参数,该参数是或必须是指向另一个函数的指针,并执行它。像这样的东西:
extern void RunFunction(void (*FunctionPonter)()) {
(*FunctionPonter)();
}
我这样称呼它:
RunFunction(&FunctionToExecute);
作为参数发送的函数将没有参数,只是一个 void 函数。
因此,所有这些都有效,正如这里介绍的那样。现在,我想进一步定义(*void)()
为,例如Action
.
typedef (*void)() Action;
Action FunctionToExecute() {
// My code. This function won't return results - void
}
我想将指针发送到我的 DLL 中的函数,如下所示:
// This is how it would be declared now in the DLL
extern void RunFunction(void (ACTION) {
(*FunctionPonter)();
}
// and this is how I would like to use it
RunFunction(FunctionToExecute);
我正在使用 VC2010,如果可能的话,我不知道该怎么做。感谢您的想法、解释和帮助!