У меня есть диалог с CListCtrl
с некоторыми данными, ниже - кнопка. Мой второй проект - это диалог с флажком tri-state. Теперь я хочу связать оба проекта, поэтому, когда вы выбираете элемент списка и нажимаете кнопку, появляется диалоговое окно tristate, показывающее что-то.Ошибка C2065 при использовании двух проектов MFC
Ну, я добавил второй проект на другой и изменил его тип .dll, но появляется ошибка сборки
error C2065: 'IDD_MFCAPP2_DIALOG' : undeclared identifier
IDD_MFCAPP2_DIALOG
это идентификатор он CheckBox диалога. При добавлении проекта оба идентификатора имели одинаковое значение, поэтому я изменил это в resource.h
вручную на другое, но это не решило проблему. Проекты работают очень хорошо по отдельности. Что мне не хватает?
UPDATE: я сократил проект до минимума, проблема такая же
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 также не spectaculary
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
и Resource.h из App2 соответственно
#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
, не видя никакого кода (в идеале [SSCCE] (HTTP: // sscce .org /)) почти невозможно сказать вам, что пошло не так. – codeling
Я обновил свой вопрос. – alex555
Если этот 'IDD_MFCTRISTATECHECKBOX_DIALOG' предполагается использовать где-то, то почему он не отображается ни в показанных .rc, ни в ваших .h-файлах? – codeling