Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MFC:: на куче всё спокойно. . . 
:(
    Опции темы
ANTON_AL
Дата 29.1.2008, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 292
Регистрация: 27.1.2007

Репутация: нет
Всего: нет



Доброго дня!


Есть класс MyDialog, который наследуется от CDialog
Код

class MyDialog: public CDialog
{
   //a lot of code
};



Есть главное окно приложения, членом которого является MyDialog
Код

class CMainWnd: public CFrameWnd
{
    //a lot of code
   public:
      int OnCreate( LPCREATESTRUCT lpCreateStruct );

   protected:
      MyDialog m_Dialog;
};


int CMainWnd::OnCreate( LPCREATESTRUCT lpCreateStruct )
{
   m_Dialog.Create( IDD_DIALOG, this );
}



В режиме Debug такой код работает без ошибок. Если переключаю на режим Release, то при выполнении . . .
Код

 m_Dialog.Create( IDD_DIALOG, this );

. . . вылетает Unhandled exception в файле except.cpp вот здесь
Код


    if (pnHelpContext != NULL)
        *pnHelpContext = 0;

    // if we didn't load our string (eg, we're a console app)
    // return a null string and FALSE

    if (!m_bInitialized)
        const_cast<CSimpleException*>(this)->InitString();

    if (m_bLoaded)
        Checked::tcsncpy_s(lpszError, nMaxError, m_szMessage, _TRUNCATE);
    else
        lpszError[0] = '\0';

    return m_bLoaded;
}

void __declspec(noreturn) AFXAPI AfxThrowMemoryException()
{
     THROW(&_simpleMemoryException); 
}

void __declspec(noreturn) AFXAPI AfxThrowNotSupportedException()
{
    THROW(&_simpleNotSupportedException);
}

void __declspec(noreturn) AFXAPI AfxThrowInvalidArgException()
{
    THROW(&_simpleInvalidArgException);
}




Если теперь в классе CMainWnd заменю член . . .
Код

MyDialog m_Dialog;


. . .на указатель. . .
Код

MyDialog *m_pDialog;

. . и в методе CMainWnd::OnCreate() буду создавать его на куче . . .
Код

int CMainWnd::OnCreate( LPCREATESTRUCT lpCreateStruct )
{
      m_pDialog = new MyDialog;
      m_pDialog->Create( IDD_DIALOG, this );
}

. . . то всё работает без ошибок. . . 


Вот и вопрос - почему и с чем это связано ??

Это сообщение отредактировал(а) ANTON_AL - 29.1.2008, 19:54
PM MAIL   Вверх
NiJazz
Дата 29.1.2008, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 2
Всего: 23



Посмотри тут
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0604 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.