簡體   English   中英

使用兩個MFC項目時出現錯誤C2065

[英]Error C2065 when using two MFC projects

我有一個帶有一些數據的CListCtrl的對話框,下面是一個按鈕。 我的第二個項目是帶有三態復選框的對話框。 現在,我要耦合兩個項目,因此,在選擇列表項並單擊按鈕時,三態對話框會顯示一些內容。

好吧,我將第二個項目添加到另一個項目中,並將其類型更改為.dll,但收到一個構建錯誤

error C2065: 'IDD_MFCAPP2_DIALOG' : undeclared identifier

IDD_MFCAPP2_DIALOG是復選框對話框的ID。 在添加項目時,兩個ID的值都相同,因此我在resource.h手動將其更改為另一個值,但是並不能解決問題。 這些項目可以很好地分開工作。 我想念什么?

更新:我已經將項目減少到最低限度,問題是一樣的

MFCApp1Dlg.h

class CMFCApp1Dlg : public CDialogEx
{
// Construction
public:
    CMFCApp1Dlg(CWnd* pParent = NULL);  // standard constructor

// Dialog Data
    enum { IDD = IDD_MFCAPP1_DIALOG };

    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support


// Implementation
protected:
    HICON m_hIcon;

    // Generated message map functions
    virtual BOOL OnInitDialog();
    afx_msg void OnPaint();
    afx_msg HCURSOR OnQueryDragIcon();
    DECLARE_MESSAGE_MAP()
public:
  afx_msg void OnBnClickedButtonChange();
  CButton m_BtnChange;
};

它的cpp文件僅包含標准內容。 只是按鈕處理程序會調用其他應用程序

void CMFCApp1Dlg::OnBnClickedButtonChange()
{
 CMFCApp2Dlg dlg;
 if (dlg.DoModal())
 {
    // do something...
  }
}

MFCApp2Dlg.h看起來一樣

class CMFCApp2Dlg : public CDialogEx
{
// Construction
public:
    CMFCApp2Dlg(CWnd* pParent = NULL);  // standard constructor

// Dialog Data
    enum { IDD = IDD_MFCAPP2_DIALOG };

    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support


// Implementation
protected:
    HICON m_hIcon;

    // Generated message map functions
    virtual BOOL OnInitDialog();
    afx_msg void OnPaint();
    afx_msg HCURSOR OnQueryDragIcon();
    DECLARE_MESSAGE_MAP()
};

.rc文件也不引人注目

IDD_MFCAPP1_DIALOG DIALOGEX 0, 0, 315, 151
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_THICKFRAME
EXSTYLE WS_EX_APPWINDOW
CAPTION "MFCApp1"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,76,119,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,157,117,50,14
    PUSHBUTTON      "Push me!",IDC_BUTTON_CHANGE,121,44,50,14
END

IDD_MFCAPP2_DIALOG DIALOGEX 0, 0, 203, 101
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_THICKFRAME
EXSTYLE WS_EX_APPWINDOW
CAPTION "MFCApp2"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,46,64,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,109,65,50,14
    CONTROL         "Check1",IDC_CHECK1,"Button",BS_AUTO3STATE | WS_TABSTOP,51,17,39,10
    CONTROL         "Check2",IDC_CHECK2,"Button",BS_AUTO3STATE | WS_TABSTOP,51,39,39,10
END

任何的意見都將會有幫助。

UPDATE2:

Resource.h of App1
#define IDD_MFCAPP1_DIALOG              102
#define IDR_MAINFRAME                   128
#define IDC_BUTTON_CHANGE               1000

// Next default values for new objects
// 
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        129
#define _APS_NEXT_COMMAND_VALUE         32771
#define _APS_NEXT_CONTROL_VALUE         1001
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif

和App2的Resource.h

#define IDD_MFCAPP2_DIALOG              202
#define IDR_MAINFRAME                   228
#define IDC_CHECK1                      2000
#define IDC_CHECK2                      2001

// Next default values for new objects
// 
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        229
#define _APS_NEXT_COMMAND_VALUE         32771
#define _APS_NEXT_CONTROL_VALUE         2002
#define _APS_NEXT_SYMED_VALUE           201
#endif
#endif

該消息只是告訴您該ID是未知標識符。 所以只是不知道。 因此通常:

確保包含正確的resource.h文件,並確保在resource.h中定義了ID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM