// CMainFrameIMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)

ON_WM_CREATE() ON_COMMAND(ID_CAP_ACTION, &CMainFrame::OnCapAction)
END_MESSAGE_MAP()我在VC6环境下编译,出现如下错误:
这一行:ON_COMMAND(ID_CAP_ACTION, &CMainFrame::OnCapAction)error C2059: syntax error : '&&' 我的代码是在VC.NET下的,后来换到VC6下的时候,这段代码出现如上错误,不知为何?请各位大侠赐教!

解决方案 »

  1.   

    ON_COMMAND(ID_CAP_ACTION, &CMainFrame::OnCapAction) 把这个&去掉。CMainFrame::OnCapAction就已经代表函数地址了,所以用CMainFrame::OnCapAction就可以了,不需要加个&.
      

  2.   

    不要&,甚至不要类名也可以,直接写OnCapAction
      

  3.   

    一般情况下带个&和不带&是一样的,但是由于ON_MESSAGE本身已经在它定义里有个&了,翻译过后会变成
    &&CMainFrame::OnCapAction,从而导致错误
      

  4.   


    #define ON_COMMAND(id, memberFxn) \
    { WM_COMMAND, CN_COMMAND, (WORD)id, (WORD)id, AfxSig_vv, (AFX_PMSG)&memberFxn },