Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.025 c
3-1109149082
}|{yk
2005-02-23 11:58
2005.03.27
Не считаются футеры в FastReport


9-1104049075
Evgenius
2004-12-26 11:17
2005.03.27
Помогите с реализом простенького AI


1-1110308995
Дельфин
2005-03-08 22:09
2005.03.27
Консольные приложения


3-1109265922
Bogdan
2005-02-24 20:25
2005.03.27
Загрузка данных Query на форму


6-1106588652
c-forever
2005-01-24 20:44
2005.03.27
НЕ ставиться таймаут на recvfrom!




   Наверх