Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.189.2.122] |
|
Сообщ.
#1
,
|
|
|
Доброго времени суток, читаю книгу Хортона. Приложение Sketcher, думаю многие её читали. Не могу понять где ошибка
CSketcherDoc::CSketcherDoc(): m_Element(LINE), m_Color(BLACK): m_Element(0) { // TODO: add one-time construction code here } 1>c:\users\администратор\documents\visual studio 2005\projects\sketcher\sketcher\sketcherdoc.cpp(42) : error C2601: 'CSketcherDoc::OnNewDocument' : local function definitions are illegal |
Сообщ.
#2
,
|
|
|
похоже на функцию в функции .... на 42й строке
покажи что там в окрестностях |
Сообщ.
#3
,
|
|
|
Класс документа
// SketcherDoc.h : interface of the CSketcherDoc class // #pragma once class CSketcherDoc : public CDocument { protected: // create from serialization only CSketcherDoc(); DECLARE_DYNCREATE(CSketcherDoc) // Attributes public: // Operations public: // Overrides public: virtual BOOL OnNewDocument(); virtual void Serialize(CArchive& ar); // Implementation public: virtual ~CSketcherDoc(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: unsigned int m_Element; COLORREF m_Color; // Текущий цвет рисования // Generated message map functions protected: DECLARE_MESSAGE_MAP() public: afx_msg void OnColorBlack(); afx_msg void OnColorRed(); afx_msg void OnColorGreen(); afx_msg void OnColorBlue(); afx_msg void OnElementLine32779(); afx_msg void OnElementRectangle(); afx_msg void OnElementCircle(); afx_msg void OnElementCurbe(); }; // SketcherDoc.cpp : implementation of the CSketcherDoc class // #include "stdafx.h" #include "Sketcher.h" #include "SketcherDoc.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CSketcherDoc IMPLEMENT_DYNCREATE(CSketcherDoc, CDocument) BEGIN_MESSAGE_MAP(CSketcherDoc, CDocument) ON_COMMAND(ID_COLOR_BLACK, &CSketcherDoc::OnColorBlack) ON_COMMAND(ID_COLOR_RED, &CSketcherDoc::OnColorRed) ON_COMMAND(ID_COLOR_GREEN, &CSketcherDoc::OnColorGreen) ON_COMMAND(ID_COLOR_BLUE, &CSketcherDoc::OnColorBlue) ON_COMMAND(ID_ELEMENT_LINE32779, &CSketcherDoc::OnElementLine32779) ON_COMMAND(ID_ELEMENT_RECTANGLE, &CSketcherDoc::OnElementRectangle) ON_COMMAND(ID_ELEMENT_CIRCLE, &CSketcherDoc::OnElementCircle) ON_COMMAND(ID_ELEMENT_CURBE, &CSketcherDoc::OnElementCurbe) END_MESSAGE_MAP() // CSketcherDoc construction/destruction CSketcherDoc::CSketcherDoc(): m_Element(LINE), m_Color(BLACK): m_Element(0) { // TODO: add one-time construction code here } CSketcherDoc::~CSketcherDoc() { } BOOL CSketcherDoc::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE; // TODO: add reinitialization code here // (SDI documents will reuse this document) return TRUE; } // CSketcherDoc serialization void CSketcherDoc::Serialize(CArchive& ar) { if (ar.IsStoring()) { // TODO: add storing code here } else { // TODO: add loading code here } } // CSketcherDoc diagnostics #ifdef _DEBUG void CSketcherDoc::AssertValid() const { CDocument::AssertValid(); } void CSketcherDoc::Dump(CDumpContext& dc) const { CDocument::Dump(dc); } #endif //_DEBUG // CSketcherDoc commands void CSketcherDoc::OnColorBlack() { m_Color=BLACK; } void CSketcherDoc::OnColorRed() { // TODO: Add your command handler code here } void CSketcherDoc::OnColorGreen() { // TODO: Add your command handler code here } void CSketcherDoc::OnColorBlue() { m_Element=LINE; } void CSketcherDoc::OnElementLine32779() { // TODO: Add your command handler code here } void CSketcherDoc::OnElementRectangle() { // TODO: Add your command handler code here } void CSketcherDoc::OnElementCircle() { // TODO: Add your command handler code here } void CSketcherDoc::OnElementCurbe() { // TODO: Add your command handler code here } |
Сообщ.
#4
,
|
|
|
Цитата MDmitry @ CSketcherDoc::CSketcherDoc(): m_Element(LINE), m_Color(BLACK): m_Element(0) двоеточие лишнее нужно запятую |
Сообщ.
#5
,
|
|
|
не могу понять в чём ошибка
класс документа с добавлениями // SketcherDoc.h : interface of the CSketcherDoc class // #pragma once class CSketcherDoc : public CDocument { protected: // create from serialization only CSketcherDoc(); DECLARE_DYNCREATE(CSketcherDoc) // Attributes public: // Operations public: // Overrides public: virtual BOOL OnNewDocument(); virtual void Serialize(CArchive& ar); // Implementation public: virtual ~CSketcherDoc(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: // Generated message map functions protected: DECLARE_MESSAGE_MAP() public: afx_msg void OnElementLine(); public: afx_msg void OnElementRectengle(); public: afx_msg void OnElementCircle(); public: afx_msg void OnElementCurve(); public: afx_msg void OnColorBlack(); public: afx_msg void OnColorRed(); public: afx_msg void OnColorGreen(); public: afx_msg void OnColorBlue(); protected: unsigned int m_Element; // Текущий тип элемента COLORREF m_Color; // Текущий цвет }; // SketcherDoc.cpp : implementation of the CSketcherDoc class // #include "stdafx.h" #include "Sketcher.h" #include "SketcherDoc.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CSketcherDoc IMPLEMENT_DYNCREATE(CSketcherDoc, CDocument) BEGIN_MESSAGE_MAP(CSketcherDoc, CDocument) ON_COMMAND(ID_ELEMENT_LINE, &CSketcherDoc::OnElementLine) ON_COMMAND(ID_ELEMENT_RECTENGLE, &CSketcherDoc::OnElementRectengle) ON_COMMAND(ID_ELEMENT_CIRCLE, &CSketcherDoc::OnElementCircle) ON_COMMAND(ID_ELEMENT_CURVE, &CSketcherDoc::OnElementCurve) ON_COMMAND(ID_COLOR_BLACK, &CSketcherDoc::OnColorBlack) ON_COMMAND(ID_COLOR_RED, &CSketcherDoc::OnColorRed) ON_COMMAND(ID_COLOR_GREEN, &CSketcherDoc::OnColorGreen) ON_COMMAND(ID_COLOR_BLUE, &CSketcherDoc::OnColorBlue) END_MESSAGE_MAP() // CSketcherDoc construction/destruction CSketcherDoc::CSketcherDoc(): m_Element(LINE),m_Color(BLACK) { // TODO: add one-time construction code here } CSketcherDoc::~CSketcherDoc() { } BOOL CSketcherDoc::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE; // TODO: add reinitialization code here // (SDI documents will reuse this document) return TRUE; } // CSketcherDoc serialization void CSketcherDoc::Serialize(CArchive& ar) { if (ar.IsStoring()) { // TODO: add storing code here } else { // TODO: add loading code here } } // CSketcherDoc diagnostics #ifdef _DEBUG void CSketcherDoc::AssertValid() const { CDocument::AssertValid(); } void CSketcherDoc::Dump(CDumpContext& dc) const { CDocument::Dump(dc); } #endif //_DEBUG // CSketcherDoc commands void CSketcherDoc::OnElementLine() { m_Element=LINE; } void CSketcherDoc::OnElementRectengle() { m_Element=RECTANGLE; } void CSketcherDoc::OnElementCircle() { m_Element=CIRCLE; } void CSketcherDoc::OnElementCurve() { m_Element=CURVE; } void CSketcherDoc::OnColorBlack() { m_Color=BLACK; } void CSketcherDoc::OnColorRed() { m_Color=RED; } void CSketcherDoc::OnColorGreen() { m_Color=GREEN; } void CSketcherDoc::OnColorBlue() { m_Color=BLUE; } Файл с константами #pragma once const unsigned int LINE=1010; const unsigned int RECTANGLE=1020; const unsigned int CIRCLE=1030; const unsigned int CURVE=1040; const COLORREF BLACK=RGB(0,0,0); const COLORREF RED=RGB(255,0,0); const COLORREF GREEN=RGB(0,255,0); const COLORREF BLUE=RGB(0,0,255); Ошибка 1>Sketcher.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall CWinApp::OnIdle(long)" (?OnIdle@CWinApp@@UAE_NJ@Z) |