Главная страница
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.026 c
1-1110697743
_1
2005-03-13 10:09
2005.03.27
Формат ячеек в Excel


4-1107888763
ali_tash
2005-02-08 21:52
2005.03.27
есть ли фанкция аналог sleep для своего потока ?


3-1109080112
denis24
2005-02-22 16:48
2005.03.27
Проблема с Fibplus 5.3.0


14-1110115466
olookin
2005-03-06 16:24
2005.03.27
Протокол матча Локомотив - Авангард


8-1100693767
Kirill
2004-11-17 15:16
2005.03.27
Формат PNG в стандартный TImage