Пример функции, работающей по разному в MFC debug и release
От: ASK-Victor  
Дата: 20.08.08 04:02
Оценка:
MFC программа использует отладочные версии библиотеки с именами MFCvvD.LIB (обычные MFCvv.LIB). В отладочных версиях этих библиотек работа МНОГИХ функций отличается от релиз-версий, причем эти различия доходят иногда до того, что возвращаются разного типа переменные, генерируются другие исключения и ошибки...

Хотелось бы узнать пример таких функций.

Спасибо.
Re: Пример функции, работающей по разному в MFC debug и rel
От: Pavel Dvorkin Россия  
Дата: 20.08.08 05:15
Оценка:
Здравствуйте, ASK-Victor, Вы писали:

AV>MFC программа использует отладочные версии библиотеки с именами MFCvvD.LIB (обычные MFCvv.LIB). В отладочных версиях этих библиотек работа МНОГИХ функций отличается от релиз-версий


Безусловно, на то и Debug

>, причем эти различия доходят иногда до того, что возвращаются разного типа переменные


Если совместимого типа — ничего особенного. Если несовместимого — как им это удалось ? Пример, пожалуйста.

>, генерируются другие исключения и ошибки...


Тоже правильно, на то и Debug

AV>Хотелось бы узнать пример таких функций.


Зачем ?
With best regards
Pavel Dvorkin
Re[2]: Пример функции, работающей по разному в MFC debug и
От: ASK-Victor  
Дата: 20.08.08 05:33
Оценка:
AV>>Хотелось бы узнать пример таких функций.

PD>Зачем ?


Начальство требует((
Re: Пример функции, работающей по разному в MFC debug и rel
От: Аноним  
Дата: 20.08.08 16:40
Оценка:
Здравствуйте, ASK-Victor, Вы писали:

AV>MFC программа использует отладочные версии библиотеки с именами MFCvvD.LIB (обычные MFCvv.LIB). В отладочных версиях этих библиотек работа МНОГИХ функций отличается от релиз-версий, причем эти различия доходят иногда до того, что возвращаются разного типа переменные, генерируются другие исключения и ошибки...


AV>Хотелось бы узнать пример таких функций.


AV>Спасибо.


единственное, чем отличаются НЕКОТОРЫЕ дебажные функции от релизных — они 'debug version only' (наример, см. _CrtSetBreakAlloc)
Re[3]: Пример функции, работающей по разному в MFC debug и
От: Pavel Dvorkin Россия  
Дата: 21.08.08 11:13
Оценка:
Здравствуйте, ASK-Victor, Вы писали:

AV>>>Хотелось бы узнать пример таких функций.


PD>>Зачем ?


AV>Начальство требует((


Посылаем начальство в "E:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\src\" или идем туда сами

Ищем там TRACE. Там их как собак нерезанных.

Берем первое попавшееся. Например (dlgcore.cpp)

void CDialog::OnOK()
{
if (!UpdateData(TRUE))
{
TRACE(traceAppMsg, 0, "UpdateData failed during dialog termination.\n");
// the UpdateData routine will set focus to correct item
return;
}
EndDialog(IDOK);
}


после чего объясняем начальству, что в Debug версии, если что-то будет не так в UpdateData, то в окно окно Output будет выведено указанное сообщение, а в Release ничего такого не будет. Начальство глубокомысленно смотрит на этот код как баран на новые ворота и перестает давать глупые задания.

P.S. Реальное поведение начальства можеот отличаться от прогнозируемого мной. В любом случае я за последствия не отвечаю.
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.