На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> MFC, Sketcher
    Доброго времени суток, читаю книгу Хортона. Приложение Sketcher, думаю многие её читали. Не могу понять где ошибка

    ExpandedWrap disabled
      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
      похоже на функцию в функции .... на 42й строке
      покажи что там в окрестностях
        Класс документа

        ExpandedWrap disabled
          // 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
          }
          Цитата MDmitry @
          ExpandedWrap disabled
            CSketcherDoc::CSketcherDoc(): m_Element(LINE), m_Color(BLACK):  m_Element(0)

          двоеточие лишнее
          нужно запятую
          Сообщение отредактировано: ElcnU -
            не могу понять в чём ошибка

            класс документа с добавлениями

            ExpandedWrap disabled
              // 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;
              }



            Файл с константами

            ExpandedWrap disabled
              #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)
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0278 ]   [ 16 queries used ]   [ Generated: 23.04.24, 09:45 GMT ]