创建的是一个Simple Objects的COM,只有一个接口和一个实现类,在接口的方法中调用了定时器,定时器处理函数是个全局函数。
STDMETHODIMP CFirst_ATL::AutoSend(BSTR msg)
{
SetTimer(NULL,10,3000,TimerProc);
return S_OK;
}void CALLBACK TimerProc(HWND hwnd,
  UINT uMsg,
  UINT idEvent,
  DWORD dwTime   )
{
      i ++;    //i为成员变量,这样写是错的,怎样访问i???????
}

解决方案 »

  1.   

    这与ATL无关,是C++的基本语法问题,你将i设为static,然后这样访问: CFirst_ATL::i
      

  2.   

    我是声明为的private:
                     int i;
    要求这样,需求不能改的,还有好的办法吗?
      

  3.   

    一般的对话框和单文档程序都有一个CMyApp类来管理,要获得对CMyDlg类的控制可以theApp.GetMainWnd();在ATL中没CMyApp类管理,如何才能获得对接口实现类的控制呀,我需要访问它的私有成员变量。