MSVS 2010. Есть диалоговое приложение на базе MFC. Есть некоторый класс-контроллер, в котором хочу хранить указатель на объект диалога для последующего взаимодействия. Но при попытке приинклуживания заголовочного файла диалога ( Project_nameDlg.h ) к контроллеру, компилятор начинает ругаться на всякую ерунду (что не определена define-константа
IDD_PROJECT_NAME_DIALOG - идентификатор диалога в resource.h, а там ругается на то, что ожидается ";" перед константами).
Наглядно: пусть есть класс диалога CProject_nameDlg и другой класс Test, с указателем на первый.
/* Project_nameDlg.h */
#pragma once
#include "afxwin.h"
class CProject_nameDlg : public CDialog {
public:
CProject_nameDlg(CWnd* pParent = NULL); // standard constructor
enum { IDD = IDD_PROJECT_NAME_DIALOG };
.......
};
/* Test.h */
#include "Project_nameDlg.h"
stuct Test {
CProject_nameDlg* ptr_;
Test(CProject_nameDlg* ptr) : ptr_( ptr ) { }
};
Подозреваю, что это как-то связано с ресурсами и внутренней какой-то кодогенерации, которая сбивается при втором инклуде злосчастного класса диалога. Вынуждает делать "интеллектуальный интерфейс" вместо MVC. Но не должно же быть все так топорно, может есть какой-то workaround?