我知道可以用
if(str = "func1")
   func1();
if(str = "func2")
   func2();
但这样的维护成本太高了.
另外一种方法是通过map映射,不过还是得维护map表.(此方法具体如何操作,我不知道,有没有哪位大侠提供一下?)有没有什么更好的机制来完成这个功能呢?

解决方案 »

  1.   

    做个Dll, 用GetProcAddress函数查找地址
      

  2.   

    具体点,GetProcAddress函数能根据字符串获取函数么?
      

  3.   

    GetProcAddress函数可以,但参数如何动态的传到dll里面呢?
    因为我动态调用的函数,函数的参数肯定是不定的啊.
      

  4.   

    回调函数和DLL的接口函数就是你说的那样.
    int (char*)()(void*)
      

  5.   

    呵呵,写错了应该是int (char*)(void*)
      

  6.   

    哈哈,还是错了int(*pfunc)(char *p) ;
      

  7.   

    ccommandline类,按照用户在运行程序时候制定的字符串执行不同的函数。
    例如“c:\mydoc\test.exe /exe1”使用exe1作为执行某一个函数的指示
      

  8.   

    http://www.codeproject.com/cpp/caacommandlineclass.asp