Compiling...
CDROMControl.cpp
f:\vc\cdromcontrol\cdromcontroldlg.h(14) : error C2011: 'CCDROMControlDlg' : 'class' type redefinition
F:\vc\CDROMControl\CDROMControl.cpp(27) : error C2511: 'CCDROMControlDlg::CCDROMControlDlg' : overloaded member function 'void (class CWnd *)' not found in 'CCDROMControlDlg'
        f:\vc\cdromcontrol\cdromcontrol.h(22) : see declaration of 'CCDROMControlDlg'
F:\vc\CDROMControl\CDROMControl.cpp(193) : fatal error C1004: unexpected end of file found
CDROMControlDlg.cpp
f:\vc\cdromcontrol\cdromcontroldlg.h(14) : error C2011: 'CCDROMControlDlg' : 'class' type redefinition
F:\vc\CDROMControl\CDROMControlDlg.cpp(64) : error C2511: 'CCDROMControlDlg::CCDROMControlDlg' : overloaded member function 'void (class CWnd *)' not found in 'CCDROMControlDlg'
        f:\vc\cdromcontrol\cdromcontrol.h(22) : see declaration of 'CCDROMControlDlg'
F:\vc\CDROMControl\CDROMControlDlg.cpp(184) : fatal error C1004: unexpected end of file found
Generating Code...
Error executing cl.exe.CDROMControl.exe - 6 error(s), 0 warning(s)
上面的错误是什么,怎么修改?
先谢了!

解决方案 »

  1.   

    在cdromcontroldlg.h中
    最开头加入 #ifnedf _CDROMCONTROL_H
               #define _CDROMCONTROL_H结尾加入   #endif
      

  2.   

    重复定义了
    #pragma once
      

  3.   

    duyhui(一天到晚游泳的鱼),先谢谢你的帮助!
    我按照你方法,编译结果还有两个错误,如下:
    Compiling...
    Skipping... (no relevant changes detected)
    StdAfx.cpp
    Compiling...
    CDROMControl.cpp
    f:\vc\cdromcontrol\cdromcontrol.cpp(4) : fatal error C1083: Cannot open precompiled header file: 'Debug/CDROMControl.pch': No such file or directory
    CDROMControlDlg.cpp
    f:\vc\cdromcontrol\cdromcontroldlg.cpp(4) : fatal error C1083: Cannot open precompiled header file: 'Debug/CDROMControl.pch': No such file or directory
    Generating Code...
    Error executing cl.exe.CDROMControl.exe - 2 error(s), 0 warning(s)
      

  4.   

    在CDROMControl.h加入的代码为:
    class CCDROMControlDlg : public CDialog
    {
    protected:
    HICON  m_hIconArray[4];
    int    m_nIconPos;
    BOOL   m_bIsFirstMinimized;
    BOOL   m_bIsMinimized;
    afx_msg void OnOpenButton();
    afx_msg void OnCloseButton();
    afx_msg void OnMinimizeButton();
    afx_msg void OnDestroy();
    afx_msg void OnTimer(UINT nIDEvent);
    afx_msg void OnWM_NOTIFYICON(WPARAM wParam,LPARAM lParam);
    DECLARE_MESSAGE_MAP()
    };
    在CDROMControl.cpp中加入的代码为:
    #define WM_NOTIFYICON  WM_USER+1
    #define IDC_NOTIFYICON WM_USER+2 BEGIN_MESSAGE_MAP(CCDROMControlDlg,CDialog)
    ON_BN_CLICKED(IDC_OPEN_BUTTON,OnOpenButton)
    ON_BN_CLICKED(IDC_CLOSE_BUTTON,OnCloseButton)
    ON_BN_CLICKED(IDC_MINIMIZE_BUTTON,OnMinimizeButton)
    ON_WM_DESTROY()
    ON_WM_TIMER()
    ON_MESSAGE(WM_NOTIFYICON,OnWM_NOTIFYICON)
    END_MESSAGE_MAP()CCDROMControlDlg::CCDROMControlDlg(CWnd* pParent)
       :CDialog(CCDROMControlDlg::IDD,pParent)
    {
    m_nIconPos=0;
    m_bIsFirstMinimized=FALSE;
    m_bIsMinimized=FALSE;
        m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
        m_hIconArray[0]=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
        m_hIconArray[1]=AfxGetApp()->LoadIcon(IDI_ICON1);
    m_hIconArray[2]=AfxGetApp()->LoadIcon(IDI_ICON2);
    m_hIconArray[3]=AfxGetApp()->LoadIcon(IDI_ICON3);
    }void CCDROMControlDlg::OnMinimizeButton()
    {
    if(m_bIsFirstMinimized==FALSE)
        {
    NOTIFYICONDATA nc;
    nc.cbSize=sizeof(NOTIFYICONDATA);
    nc.hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    nc.hWnd=m_hWnd;
    lstrcpy(nc.szTip,"光盘驱动控制器1.0");
    nc.uCallbackMessage=WM_NOTIFYICON;
    nc.uFlags=NIF_ICON | NIF_MESSAGE | NIF_TIP;
    nc.uID=IDC_NOTIFYICON;
    ShellNotifyIcon(NIM_ADD,&nc);
    SetTimer(1,200,NULL);
    m_bIsFirstMinimized=TRUE;
    }
    ShowWindow(SW_HIDE);
    m_bIsMinimized=TRUE;
    }void CCDROMControlDlg::OnWM_NOTIFYICON(WPARAM wParam,LPARAM lParam)
    {
    UINT nID=(UINT)wParam;
    UINT uMouseMsg=(UINT)lParam;
    switch(uMouseMsg)
        {
    case WM_LBUTTONBLCLK:
     if(m_bIsMinimized==TRUE)
             {
     ShowWindow(SW_SHOW);
     m_bIsMinimized=!m_bIsMinimized;
     }
     break;
        case WM_RBUTTONDOWN:
             CMenu  menu;
     CPoint curpos;
     GetCursorPos(&curpos);
     if(menu.LoadMenu(IDR_MENU))
             {
     CMenu* pPopup;
     pPopup=menu.GetSubMenu(0);
                 ASSERT(pPopup!=NULL);
     SetForegroundWindow();
     pPopup->TrackPopupMenu(TPM_LEFTALIGN|TMP_RIGHTBUTTON,curpos.x,curpos.y,AfxGetMainWnd());
     }
    }
    }void CCDROMControlDlg::OnTimer(UINT nIDEvent)
    {
    NOTIFYICONDATA nc;
    nc.cbSize=sizeof(NOTIFYICONDATA);
    if(m_nIconPos==3)
    m_nIconPos=0;
    nc.hIcon=m_hIconArray[m_nIconPos++];
        nc.hWnd=m_Wnd;
        lstrcpy(nc.szTip,"光盘控制器1.0");
        nc.uCallBackMessage=WM_NOTIFYICON;
    nc.uFlags=NIF_ICON | NIF_MESSAGE | NIF_TIP;
    nc.uID=IDC_NOTIFYICON;
    Shell_NotifyIcon(NIM_MODIFY,&nc);
    CDialog::OnTimer(nIDEvent);
    }void CCDROMControlDlg::OnSysCommand(UINT nID,LPARAM lParam)
    {
    if((nID&0xFFF0)==IDM_ABOUTBOX)
        {
    CAboutDlg dlgAbout;
    dlgAbout.DoModal();
    }
    else
        {
    if(nID==SC_MINIMIZE)
    ttonMinimize();
    else
    CDialog::OnSysCommand(nID,lParam);
    }
    }
            
    void CCDROMControlDlg::OnDestroy()
    {
    CDialog::OnDestroy;
    NOTIFYICONDATA nc;
    nc.cbSize=sizeof(NOTIFYICONDATA);
    nc.hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    nc.hWnd=m_hWnd;
    nc.uCallbackMessage=WM_NOTIFYICON;
    nc.uFlags=NIF_ICON | NIF_MESSAGE | NIF_TIP;
    nc.uID=IDC_NOTIFYICON;
    Shell_NotifyIcon(NIM_DELETE,&nc);
    KillTimer(1);
    }
    请高手帮忙修改!先谢了!