Главная страница
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.062 c
1-1110452106
SMART_n
2005-03-10 13:55
2005.03.27
Размер строки...


3-1109669846
syte_ser78
2005-03-01 12:37
2005.03.27
вычисляемое поле в дбгриде


14-1110280115
SergP
2005-03-08 14:08
2005.03.27
ИЕ


9-1104047468
.dn
2004-12-26 10:51
2005.03.27
Миникарта


3-1109605455
Вольный Стрелок
2005-02-28 18:44
2005.03.27
чтение BLOB SUB_TYPE TEXT в переменную VARCHAR в ХП