Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Воскресно-вечернее торможение / 25 сообщений из 44, страница 1 из 2
20.10.2019, 19:28
    #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
20.10.2019, 19:35
    #39878908
swame2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Воскресно-вечернее торможение
ёёёёё,
Для начала я бы вывел фактический E.ClassName. А тут кода много , а этого нет
...
Рейтинг: 0 / 0
20.10.2019, 19:48
    #39878914
ёёёёё
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Воскресно-вечернее торможение
swame2ёёёёё,
Для начала я бы вывел фактический E.ClassName. А тут кода много , а этого нет

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

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

Вот:

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

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

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

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

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

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

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

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

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

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

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

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

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


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