2009. 1. 18. 23:59

1>d:\vc2005\mfcexam\modaless\modaless\modalessdlg.h(34) : error C2143: 구문 오류 : ';'이(가) '*' 앞에 없습니다.
1>d:\vc2005\mfcexam\modaless\modaless\modalessdlg.h(34) : error C4430: 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다.
1>d:\vc2005\mfcexam\modaless\modaless\modalessdlg.h(34) : error C4430: 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다.



이러한 에러가 발생하였다.
이것은 서로 다른 클래스가 서로를 참조하고 있을때 발생한다.
따라서 이런경우 해결책은 '전방참조'라고 하는 방법을 사용한다.

어느 한쪽의 클래스 선언문 위에 다른 클래스의 이름을 적어준다.


// ModalessDlg.h : 헤더 파일
//

#pragma once
#include "childdlg.h"

class CChildDlg; // 전방참조

// CModalessDlg 대화 상자
class CModalessDlg : public CDialog
{
// 생성입니다.
public:
 CModalessDlg(CWnd* pParent = NULL); // 표준 생성자입니다.

// 대화 상자 데이터입니다.
 enum { IDD = IDD_MODALESS_DIALOG };

 protected:
 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원입니다.


// 구현입니다.
protected:
 HICON m_hIcon;

 // 생성된 메시지 맵 함수
 virtual BOOL OnInitDialog();
 afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
 afx_msg void OnPaint();
 afx_msg HCURSOR OnQueryDragIcon();
 DECLARE_MESSAGE_MAP()
public:
 CChildDlg *m_pDlg;
public:
 afx_msg void OnBnClickedShowDialog();
};

Posted by +깡통+