powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Воскресно-вечернее торможение
25 сообщений из 44, страница 1 из 2
Воскресно-вечернее торможение
    #39878901
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то я заработался...
Код: pascal
1.
2.
3.
4.
5.
6.
7.
procedure ***.KOnApplicationException(Sender: TObject; E: Exception);
...
begin
  ShowMessageFmt('E is %s %s'#10
    + 'E.ClassNameIs(''EFIBInterBaseError'') = %s',
    [iifStr(E is EFIBInterBaseError, '', 'NOT'), EFIBInterBaseError.ClassName,
    iifStr(E.ClassNameIs('EFIBInterBaseError'), 'Yes', 'No')]);



Вывод: см. картинку.

Отчего так? В D7 вроде и "E is EFIBInterBaseError" давало True...
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39878908
swame2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ёёёёё,
Для начала я бы вывел фактический E.ClassName. А тут кода много , а этого нет
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39878914
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
swame2ёёёёё,
Для начала я бы вывел фактический E.ClassName. А тут кода много , а этого нет

ОК:
Код: pascal
1.
  ShowMessageFmt('EFIBInterBaseError.ClassName=''%s''', [EFIBInterBaseError.ClassName]);
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39878919
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

ой, совсем старый и плохой...

Вот:

Код: pascal
1.
  ShowMessageFmt('EFIBInterBaseError.ClassName=''%s''', [E.ClassName]);
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39878921
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, почти правильно. Сойдет.
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39878927
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39878951
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёОтчего так?
Криво собранные DLL-ки либо другая причина, по которой в приложении наблюдается несколько разных EFIBInterBaseError.
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39878971
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо просто прямо спросить, - исследуемый объект не из DLL- ки ли пришел? А то, насколько помню, в этом случае всегда были штатные проблемы с as и is.
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39878973
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerёёёёёОтчего так?
Криво собранные DLL-ки либо другая причина, по которой в приложении наблюдается несколько разных EFIBInterBaseError.

Спасибо, точно! Исключение ловлю, находясь внутри DLL, из методов интерфейса переданного в эту самую DLL объекта, исключения генерируются в "основной программе".
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39878980
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ни за что и никогда исключения не должны пересекать границу библиотеки. Если приспичило -
используй safecall чтобы они автоматически ловились на выходе и снова выкидывались на входе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39879003
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня раньше прямо в DLL создавался коннект, и все работало как ожидалось.
А потом я контекст коннекта из другого (.exe) модуля в .dll передавать стал, прошло время, и вдруг обработка эксцепшнов "заглючила". Раньше просто таких эксцепшнов не было, вот и расслабился. :)
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39879007
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня всегда коннект создавался в DLL, но никогда не работал as и is на поставляемых ею объектах. Не исключено, впрочем, что мы с этим делом сейчас, наконец, разберемся, если поймём куда воткнуть рекомендуемый Сибиряковым safecall.
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39879011
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad FА то, насколько помню, в этом случае всегда были штатные проблемы с as и is.
Не всегда. Только при кривой сборке.
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39879012
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНи за что и никогда исключения не должны пересекать границу библиотеки.
Господи, какая глупость.
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39879013
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerDimitry SibiryakovНи за что и никогда исключения не должны пересекать границу библиотеки.
Господи, какая глупость.
А мне страшно стало. :)
И так все разобрано на детали, мотор - сюда, коробка - туда, а если еще и место экцепшнов что-то придумывать придется...
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39879014
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerVlad FА то, насколько помню, в этом случае всегда были штатные проблемы с as и is.
Не всегда. Только при кривой сборке.
Однако, ты второй уже раз поминаешь кривую сборку, вместо того, чтобы научить заинтересованных слушателей прямой.
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39879067
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad FОднако, ты второй уже раз поминаешь кривую сборку, вместо того, чтобы научить заинтересованных слушателей прямой.
Я уже лет пятнадцать как поминаю её здесь каждый раз, когда возникает эта тема. И опыт показывает, что люди ни фига не учатся - начинают возражать, говорить, что собирают как надо и идти дальше в своё вечное путешествие по граблям.

В случае DLL кривая сборка - без использования run-time packages. Это приводит к копированию RTL и следующим из неё многочисленным проблемам, в том числе к упомянутым здесь is/as и исключениям, а также к многочисленным не упомянутым.
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39879071
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

Я думал, у тебя что то действительно стоящее в кармане припасено. А тут, значит, все, что без runtime-пакетов, все кривое. Ну-ну.
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39879084
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad Fsoftwarer,
Я думал, у тебя что то действительно стоящее в кармане припасено. А тут, значит, все, что без runtime-пакетов, все кривое. Ну-ну.
Ну тут выбор простой, как я понимаю: либо dll без runtime packages, но тогда из/в неё не передавать ничего из vcl, либо с рантайм (или вообще bpl) если вы хотите использовать все плюшки вроде исключений и т.п.
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39879090
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

Dimitry Sibiryakov прав
сборка dll с пакетами это кустарщина для внутреннего пользования

серьёзное API не должно зависеть от нестандартизированного ABI. Нарушение этого правила абсолютно применимо к любым языкам. В силу падения общего уровня разработчиков это уже стало проблемой в продуктах даже довольно известных компаний.
И ничего кроме матюков данная ситуация не вызывает
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39879096
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad FА тут, значит, все, что без runtime-пакетов, все кривое. Ну-ну.
Я же говорил

softwarer... и идти дальше в своё вечное путешествие по граблям.

kealon(Ruslan)сборка dll с пакетами это кустарщина для внутреннего пользования
Кустарщина - это попытки с помощью "сюда подсунем, здесь закостылим, а этого скажем что не надо так делать" довести до "разваливается только время от времени" технологию, которая не работоспособна и не предназначена работать в таком режиме. Поставить один чекбокс и получить безупречно работающий результат - для того, чтобы назвать это кустарщиной, особенно в таком сравнении, нужно.... очень развитое воображение, назовём так.

Что же до внутреннего использования... прежде всего я хотел бы увидеть, кто из присутствующих вообще пишет не для внутреннего использования. После чего поинтересоваться, чему в их внешнем использовании мешают ран-тайм пакеты. Вот просто попросить назвать задачу, которую они мешают решить. Впрочем, могу сразу назвать результат - поскольку подобные неумные разговоры ведёт уже не первое поколение. Люди додумаются максимум до "а если я захочу часть DLL компилить одной версией дельфы, а часть - другой, всё равно будут проблемы". На вопрос - зачем им это нужно они не ответят. На вопрос - как они при этом будут решать свои костыли с передачей хандлов и прочим - тоже не ответят.
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39879219
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
категорий такого софта много: хуки, плагины на миксе софта из разных языков - этого достаточно?
я например, вживую на практике встречал уже кучу проблем из-за таких умников, видимо с такими же рассуждениями

Людей, непонявших основы ABI, к системному программированию допускать нельзя, от слова ВООБЩЕ - т.е. пусть кликает себе формочки и в dll не лезет

softwarerКустарщина - это попытки с помощью "сюда подсунем, здесь закостылим, а этого скажем что не надо так делать" довести до "разваливается только время от времени" технологию, которая не работоспособна и не предназначена работать в таком режиме.каким образом вы оцениваете не имея эффективного положительного опыта в подобной разработке?
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39879230
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понедельник только начался. :)
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39879231
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov...используй safecall чтобы они автоматически...

Поясни, пожалуйста.
...
Рейтинг: 0 / 0
Воскресно-вечернее торможение
    #39879232
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёПоясни, пожалуйста.

Для пояснений есть F1.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 44, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Воскресно-вечернее торможение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]