BOOL PortApp::InitInstance()
{
PortDlg TheDlg(); // Создаю единственный экземпляр диалогового окошка
m_pMainWnd = &TheDlg; // Указываю его как главное окно приложения
TheDlg.DoModal(); // Запускаю окошко на выполнение.
}
Преобразование CDialog в CWinApp.
Код:
Во второй строчке функции компилятор говорит, что он не знает, как из CDialog сделать CWinApp (ну, или что-то в этом роде). Для полноты картины приведу-ка я ещё текст конструктора класса моего диалогового окошка:
Код:
PortDlg::PortDlg(CWnd* pParent)
: CDialog(IDD_DLG, pParent)
{
}
: CDialog(IDD_DLG, pParent)
{
}
Проще всего, конечно, сваять-таки программу с применением этого AppWizard'a и посмотреть, как там сделано. А сделано там с применением какого-то блока AFX_DATA, с которым я пока разбираться не хочу. Наверно, проблема всё же в конструкторе моего диалогового окошка. В общем, буду благодарен всем, кто ответит.
Цитата:
Originally posted by TheMaster
Задача стоит в следующем: сваять MFC - программу, которая выводит на экран диалоговое окошко в качестве главного окошка приложения. Причём хочется сделать это без применения AppWizard. Возникает проблема в следующем сверхсложном участке кода:
Во второй строчке функции компилятор говорит, что он не знает, как из CDialog сделать CWinApp (ну, или что-то в этом роде). Для полноты картины приведу-ка я ещё текст конструктора класса моего диалогового окошка:
Проще всего, конечно, сваять-таки программу с применением этого AppWizard'a и посмотреть, как там сделано. А сделано там с применением какого-то блока AFX_DATA, с которым я пока разбираться не хочу. Наверно, проблема всё же в конструкторе моего диалогового окошка. В общем, буду благодарен всем, кто ответит.
Задача стоит в следующем: сваять MFC - программу, которая выводит на экран диалоговое окошко в качестве главного окошка приложения. Причём хочется сделать это без применения AppWizard. Возникает проблема в следующем сверхсложном участке кода:
Код:
BOOL PortApp::InitInstance()
{
PortDlg TheDlg(); // Создаю единственный экземпляр диалогового окошка
m_pMainWnd = &TheDlg; // Указываю его как главное окно приложения
TheDlg.DoModal(); // Запускаю окошко на выполнение.
}
{
PortDlg TheDlg(); // Создаю единственный экземпляр диалогового окошка
m_pMainWnd = &TheDlg; // Указываю его как главное окно приложения
TheDlg.DoModal(); // Запускаю окошко на выполнение.
}
Во второй строчке функции компилятор говорит, что он не знает, как из CDialog сделать CWinApp (ну, или что-то в этом роде). Для полноты картины приведу-ка я ещё текст конструктора класса моего диалогового окошка:
Код:
PortDlg::PortDlg(CWnd* pParent)
: CDialog(IDD_DLG, pParent)
{
}
: CDialog(IDD_DLG, pParent)
{
}
Проще всего, конечно, сваять-таки программу с применением этого AppWizard'a и посмотреть, как там сделано. А сделано там с применением какого-то блока AFX_DATA, с которым я пока разбираться не хочу. Наверно, проблема всё же в конструкторе моего диалогового окошка. В общем, буду благодарен всем, кто ответит.
Убури скобки после TheDlg в строчке PortDlg TheDlg();
Код:
Main.cpp(11) : error C2243: 'type cast' : conversion from 'class PortDlg *' to 'class CWnd *' exists, but is inaccessible
Странно! Что бы это значило?
Цитата:
Originally posted by TheMaster
Пишет буквально следующее:
Странно! Что бы это значило?
Пишет буквально следующее:
Код:
Main.cpp(11) : error C2243: 'type cast' : conversion from 'class PortDlg *' to 'class CWnd *' exists, but is inaccessible
Странно! Что бы это значило?
Код:
m_pMainWnd = (CWnd *) &TheDlg;
Код:
m_pMainWnd = (CWnd *) &TheDlg;
Скобки пришлось поставить:
Код:
PortDlg TheDlg();
А то выдаёт предупреждение, что, мол, преобразование недоступно.
Однако придирается, сволочь, дальше! Говорит, что следующая строчка неправильная.
Код:
TheDlg->DoModal();
Типа, всё, что слева от ->DoModal(), должно указывать на class/struct/union. Насколько я понимаю сишку, строчка:
Код:
PortDlg TheDlg();
говорит, что TheDlg - это класс! Пробовал стрелку точкой заменить - бесполезно: не помогает. Ругается точно так же.
Может, я что-то недопонимаю?