小编And*_*eas的帖子

如何将funcptr从C++类传递给C API?

如何将动态生成的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++程序员,但需要让我的日常工作运行.谢谢!

c c++

6
推荐指数
1
解决办法
250
查看次数

标签 统计

c ×1

c++ ×1