Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.27;
Скачать: CL | DM;

Вниз

Знатокам 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.035 c
1-1110534729
DelphiNew
2005-03-11 12:52
2005.03.27
Как перестроить ветку в Treeview1


3-1109151523
Nur_Ali
2005-02-23 12:38
2005.03.27
регистрация базы данных на IBЕxpert


3-1109742790
Павел
2005-03-02 08:53
2005.03.27
1С и дельфи: как получить доступ к БД 1С из дельфи?


1-1110364233
BALU1111
2005-03-09 13:30
2005.03.27
Создание компонент на форме


1-1110399057
PIF
2005-03-09 23:10
2005.03.27
решение системы линейных уравнений в Delphi