c ++ void*to函数的参数

ghi*_*boz 2 c++ function-pointers void-pointers visual-c++

我在某个库中有这个功能:

class myConsole
{
    void addCommand( std::string command, void* fn );
    ...
}
Run Code Online (Sandbox Code Playgroud)

在我班上我有这个功能:

void myApp::TestFn( const std::vector<std::string> & args )
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

在同一个班级我称之为:

void myApp::initApp( )
{
    myConsole::getSingleton( ).addCommand( "FirstTest", &myApp::TestFn );
}
Run Code Online (Sandbox Code Playgroud)

但这给了我这个错误:

错误c2664无法将参数2从'void(__ thiscall myApp ::*)(const std :: vector <_Ty>&)'转换为'void*'

我该怎么解决这个问题?

提前致谢!

Fre*_*Foo 9

无法解决这个问题.您无法可靠地转换函数指针void *和返回.

(我建议你重新设计程序并保持清醒void*;在C++中没有真正需要它.)