如何将动态生成的C++函数作为*funcprt传递给C API?
API导出:
DllImport void api_register_func(char *func_name, void (*funcptr)(char *, char *));
Run Code Online (Sandbox Code Playgroud)
我必须在运行时创建函数,因为我之前不知道它.所以我用了一堂课:
class JsFunc
{
public:
char * JsFuncName;
char * JsParameter;
void RunFunc(char * val1, char * val2)
{
printf("\nJsFunc.runFunc executed, JsParameter=%s passed\n",JsParameter);
}
};
Run Code Online (Sandbox Code Playgroud)
并称之为:
JsFunc * jsm = new JsFunc ();
jsm->JsFuncName = external_parameter1;
jsm->JsParameter = external_parameter2;
api_register_func(external_parameter1, jsm->RunFunc);
Run Code Online (Sandbox Code Playgroud)
但VisualStudio 2015告诉我:
错误C3867'JsFunc :: runFunc':非标准语法; 使用'&'创建指向成员VJCS C的指针:\ Users\astrauss\Source\Repos\VCJS\VCJS\VCJS.cpp 54
对不起,如果代码不好,我不是C/C++程序员,但需要让我的日常工作运行.谢谢!