Форум: "Потрепаться";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
ВнизЗнатокам Visual C++ ... Найти похожие ветки
← →
Skier © (2005-03-04 09:06) [0]Господа, с знакомые Visual C++, прошу оказать вспоможение.
Проблема в следующем :
есть библиотека... если компилить Release"овскую версию библиотеки, то не работает оператов try{}...catch{} такое впечатление что он просто игнорируется, если же компилить Debug"овскую версию, то всё работает...
1) В чем может быть дело ? Может есть некие Define"ы на это счёт ?
2) Может ли быть дело в переопределённом операторе try ? (в библиотеке есть переопределённый оператор try)
← →
Skier © (2005-03-04 10:47) [1]Up
← →
Игорь Шевченко © (2005-03-04 10:48) [2]Странно. Не сталкивался с таким поведением. Небольшой пример напиши, где это проявляется и выложи.
← →
VMcL © (2005-03-04 10:58) [3]>>Skier © (04.03.05 09:06)
Версия, сервис-паки?
← →
Skier © (2005-03-04 11:26) [4]>Игорь Шевченко © (04.03.05 10:48) [2]
> Небольшой пример напиши, где это проявляется и выложи.
пример не получится, к сожалению... это чужая библиотека (PHP-интерпретатор). пытаемся там в одном месте использовать try-catch
и в Release"овской версии не получается...
>VMcL © (04.03.05 10:58) [3]
> Версия, сервис-паки?
Microsoft Visual C++ 7.1.3088
← →
Григорьев Антон © (2005-03-04 11:35) [5]А точно именно try/catch не работает? Может, в релизной версии просто не выкидывается исключение?
← →
VMcL © (2005-03-04 11:39) [6]>>Skier © (04.03.05 11:26) [4]
Это 2003-я студия? Я в 2003-й только с Нетовскими проектами работал, так что, сори, помочь не могу.
← →
Alx2 © (2005-03-04 11:40) [7]Skier © (04.03.05 9:06)
Вот это если проверить:
В опциях проекта (Alt+F7) для варианта Release на закладке "С/C++" в категории "С++ language" поставить галочку "Enable exception handling"?
← →
Skier © (2005-03-04 11:44) [8]>Григорьев Антон © (04.03.05 11:35) [5]
> А точно именно try/catch не работает?
Не уверен, если честно, но очень похоже что так...
кусок такой :
try{
zend_call(...) //-вызов функции из другой библиотеки...
}
catch(...){
//...
}
так вот в debug"овской версии в блок catch мы приходим, а в release"овской - нет...
> Может, в релизной версии просто не выкидывается исключение?
а такое может быть ?
← →
clickmaker © (2005-03-04 11:55) [9]
> Может, в релизной версии просто не выкидывается исключение?
>
> а такое может быть ?
Если программа работает без ошибок, значит что-то в ней не так... :))
← →
Skier © (2005-03-04 11:59) [10]>clickmaker © (04.03.05 11:55) [9]
у людей горе, а ты шутишь...:)
← →
Григорьев Антон © (2005-03-04 15:43) [11]
> Skier © (04.03.05 11:44) [8]
> > Может, в релизной версии просто не выкидывается исключение?
>
> а такое может быть ?
Вполне. Например, если там есть такой код:
ASSERT(a/b>0)
В release-версии ASSERT вытирается препроцессором, поэтому выражение в скобках вычисляться в принципе не будет. А в debug-версии, если b=0, здесь вылезет исключение. В более общем случае то же самое может происходить, если код, вызывающий исключение, обрамлён #ifdef _DEBUG/#endif, т.е. попадает компилятору только при компиляции debug-версии.
← →
Аюс (2005-03-04 16:22) [12]Да есть такое ...
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.042 c