如果放到类里面,那么就必须象回调函数一样,给出一个参数(arg)
这样,在类里写一个static function就可以了。
也就是说,除了g_fpErrMsgProcessor还有一个g_fpErrMsgArg如果不想这样,
你在一个cpp源文件里以,生成一个实例
MyClass myErrProcessor;
你的函数默认使用这个实例。

解决方案 »

  1.   

    另外,你自己的函数不要叫Afx******,会引起误解的。
      

  2.   

    谢谢 PPC
    这是个办法
    不过由于错误处理通常还有有很多报告之类的东西,比如给出对话框,或在界面上显示,或存盘,或者在状态栏上给出提示等,这样就极不好扩展,对不?
      

  3.   

    stdio里面是不是有一个,参照参照。
      

  4.   

    可以很容易的扩展的。这样:class BaseHandler()
    {
     public:
      static int global_handler(void * arg, char *);
     private:
      virual int internal_handler(char *);
    };/*CPP*/
    BaseHandler::global_hander(void * arg, char * msg)
    {
     return static_cast<BaseHandler *>(arg)-> internal_handler(msg);
    }通过派生出新的类就可以随意扩展。
      

  5.   

    我做了一个,给你发过去,是基于虚函数的,派生一下就oK了
    [email protected]