Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Документ/вид + диалог (переменная типа диалога в классе вида)

1.9K
21 сентября 2006 года
burst
94 / / 04.09.2006
Добрый день.

Пишу приложение документ/вид для отображения html файлов. По выбору пункта меню должно вызываться диалоговое окно. Класс его CSelectorDlg
Почему когда я объявляю в классе вида CBrowserView переменную CSelectorDlg m_selDlg; компилятор пишет

c:\program files\microsoft visual studio\myprojects\browser\browserview.h(16) : error C2146: syntax error : missing ';' before identifier 'm_selDlg'
c:\program files\microsoft visual studio\myprojects\browser\browserview.h(16) : error C2501: 'CSelectorDlg' : missing storage-class or type specifiers
c:\program files\microsoft visual studio\myprojects\browser\browserview.h(16) : error C2501: 'm_selDlg' : missing storage-class or type specifiers

Код обоих классаов:
Код:
// SelectorDlg.h : header file
//

#if !defined(AFX_SELECTORDLG_H__679D7B67_BBE1_4B10_BFA3_0707446C5017__INCLUDED_)
#define AFX_SELECTORDLG_H__679D7B67_BBE1_4B10_BFA3_0707446C5017__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////////
// CSelectorDlg dialog

class CSelectorDlg : public CDialog
{
// Construction
public:
    CSelectorDlg(CWnd* pParent = NULL); // standard constructor
    void SetList(CList<CString, CString> *pLstPages);
    void GetList(CList<CString, CString> &lstPages);
// Dialog Data
    //{{AFX_DATA(CSelectorDlg)
    enum { IDD = IDD_SELECTOR_DIALOG };
    CListBox    m_listPages;
    CString m_strPageAddress;
    //}}AFX_DATA

    // ClassWizard generated virtual function overrides
    //{{AFX_VIRTUAL(CSelectorDlg)
    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
    //}}AFX_VIRTUAL

// Implementation
protected:
    HICON m_hIcon;

    // Generated message map functions
    //{{AFX_MSG(CSelectorDlg)
    virtual BOOL OnInitDialog();
    afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
    afx_msg void OnPaint();
    afx_msg HCURSOR OnQueryDragIcon();
    afx_msg void OnAdd();
    afx_msg void OnRemove();
    afx_msg void OnSelchangeListPages();
    afx_msg void OnButtonOpen();
    virtual void OnOK();
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
private:
    CList<CString, CString> m_listPageAddress;

};

void CSelectorDlg::SetList(CList<CString, CString> *pLstPages)
{
    m_listPageAddress.RemoveAll();
    m_listPageAddress.AddTail(pLstPages);
};
void CSelectorDlg::GetList(CList<CString, CString> &lstPages)
{
    lstPages.RemoveAll();
    lstPages.AddTail(&m_listPageAddress);
};


//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_SELECTORDLG_H__679D7B67_BBE1_4B10_BFA3_0707446C5017__INCLUDED_)


///////////*****************************/////////////////////

// BrowserView.h : interface of the CBrowserView class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_BROWSERVIEW_H__5E6A502F_EC67_4A87_9F71_1562364F89EB__INCLUDED_)
#define AFX_BROWSERVIEW_H__5E6A502F_EC67_4A87_9F71_1562364F89EB__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


class CBrowserView : public CHtmlView
{

    CSelectorDlg m_selDlg;
    CList<CString, CString> m_listPages;
protected: // create from serialization only
    CBrowserView();
    DECLARE_DYNCREATE(CBrowserView)

// Attributes
public:
    CBrowserDoc* GetDocument();

// Operations
public:

// Overrides
    // ClassWizard generated virtual function overrides
    //{{AFX_VIRTUAL(CBrowserView)
    public:
    virtual void OnDraw(CDC* pDC);  // overridden to draw this view
    virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
    protected:
    virtual void OnInitialUpdate(); // called first time after construct
    //}}AFX_VIRTUAL

// Implementation
public:
    virtual ~CBrowserView();
#ifdef _DEBUG
    virtual void AssertValid() const;
    virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
    //{{AFX_MSG(CBrowserView)
    afx_msg void OnFileSelect();
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
};

#ifndef _DEBUG  // debug version in BrowserView.cpp
inline CBrowserDoc* CBrowserView::GetDocument()
   { return (CBrowserDoc*)m_pDocument; }
#endif

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_BROWSERVIEW_H__5E6A502F_EC67_4A87_9F71_1562364F89EB__INCLUDED_)
14K
21 сентября 2006 года
wrap
35 / / 02.06.2006
В файле BrowserView.h:
 
Код:
#include "SelectorDlg.h"
1.9K
21 сентября 2006 года
burst
94 / / 04.09.2006
[QUOTE=wrap]В файле BrowserView.h:
 
Код:
#include "SelectorDlg.h"
[/QUOTE]

Результат:
 
Код:
rowserView.obj : error LNK2005: "public: void __thiscall CSelectorDlg::SetList(class CList<class CString,class CString> *)" (?SetList@CSelectorDlg@@QAEXPAV?$CList@VCString@@V1@@@@Z) already defined in Browser.obj
BrowserView.obj : error LNK2005: "public: void __thiscall CSelectorDlg::GetList(class CList<class CString,class CString> &)" (?GetList@CSelectorDlg@@QAEXAAV?$CList@VCString@@V1@@@@Z) already defined in Browser.obj
SelectorDlg.obj : error LNK2005: "public: void __thiscall CSelectorDlg::SetList(class CList<class CString,class CString> *)" (?SetList@CSelectorDlg@@QAEXPAV?$CList@VCString@@V1@@@@Z) already defined in Browser.obj
SelectorDlg.obj : error LNK2005: "public: void __thiscall CSelectorDlg::GetList(class CList<class CString,class CString> &)" (?GetList@CSelectorDlg@@QAEXAAV?$CList@VCString@@V1@@@@Z) already defined in Browser.obj
Debug/Browser.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
14K
21 сентября 2006 года
wrap
35 / / 02.06.2006
Вынеси реализацию методов CSelectorDlg в .cpp файл
1.9K
21 сентября 2006 года
burst
94 / / 04.09.2006
[QUOTE=wrap]Вынеси реализацию методов CSelectorDlg в .cpp файл[/QUOTE]

Спасибо, что помог, заработало!
1.9K
22 сентября 2006 года
burst
94 / / 04.09.2006
Последний маленький вопрос: как открыть html документ с помощью метода Navigate2. Файлы, расположенные в сети открываются нормально, а вот те что на компе - вызвают ошибку
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог