Есть ли будущее у DELPHI?
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.43] |
|
|
Правила раздела:
| Страницы: (245) « Первая ... 51 52 [53] 54 55 ... 244 245 ( Перейти к последнему сообщению ) |
Есть ли будущее у DELPHI?
|
Сообщ.
#781
,
|
|
|
|
И ты думаешь что все эти параметры класса языкового исключения туда попадут и ты сможешь их обработать? Ну, код я тебе написал - дерзай, покажи мне свое приложение, которое выведет на экран сообщение об ошибке 'Invalid index: xxx' Цитата Повстанець @ Мало того, что его никто удалять не будет, так это исключение ещё никто и не получит. Ну, во-первых именно исключение ты получишь, но вот о его параметрах - ну ничегошеньки не узнаешь, потому что винапишный протокол ничего для этого не предусматривает Цитата Повстанець @ Языковые исключения, к HRESULT вообще никакого отношения не имеют. Во всяком случае не большее, чем те же исключения к GetLastError из WinApi. Несколько больше. Протокол COM устанавливает для языковых исключений правила игры - что и каким образом с ними должно происходить Добавлено эээ, safecall? Через границы модуля исключение не пройдет, пройдет HResult, который уже потом будет преобразован в исключение Добавлено Это неправильный ответ, потому что работать в этом случае будет все некорректно - никто твое языковое исключение на принимающей стороне не обработает как положено |
|
Сообщ.
#782
,
|
|
|
|
Вот ведь парадокс - TDateTime позволяет хранить дату чуть ли не тепловой смерти вселенной, а будущего - нет
|
|
Сообщ.
#783
,
|
|
|
|
Цитата Мяут-Настоящий @ а будущего - нет Э? Добавлено Цитата Повстанець @ Чувак, ну ты прикалываешься, или что? Твой объект класса EListIndexError не имеет никакого отношения ни к СОМ, ни к WinApi. Ровно как и твой оператор raise. Мало того, что его никто удалять не будет, так это исключение ещё никто и не получит. А вообще я примерно это и имел в виду, когда говорил о том, что винапишный подход использовать для межмодульного взаимодействия - ненадежно. Исключения - это такая штука, ты не никогда не уверен что тебе в следующий момент оно не вывалится, тебе вовсе необязательно писать raise самому - это может произойти помимо твоей воли. Но фишка в том, что обработана то эта ситуация корректно не будет - ну что чужой язык программирования знает про твои исключения? Вывод - такой протокол межмодульного и межязыкового взаимодействия - в печь! |
|
Сообщ.
#784
,
|
|
|
|
Цитата --Ins-- @ Протокол COM устанавливает для языковых исключений правила игры - что и каким образом с ними должно происходить ![]() Ссылку? Цитата пройдет HResult, который уже потом будет преобразован в исключение Это будет зависеть от принимающего языка. |
|
Сообщ.
#785
,
|
|
|
|
Только вот этот инструмент в очередной раз метит в кроссплатформенность |
|
Сообщ.
#786
,
|
|
|
|
Цитата D_KEY @ Ссылку? Ссылку на что? На то, что для com/ole способом оповещения об ошибках - должен быть тип HResult, а не винапишные "что хочу" (хочу - исключение, хочу - код ошибки, хочу - BOOL-значение)? Добавлено Цитата [S]mike @ Только вот этот инструмент в очередной раз метит в кроссплатформенность Ну и пожелаем ему в этом успехов, как тут TDateTime мешает? В Delphi.NET тоже наверняка есть TDateTime, но разве там он псевдоним double? В Delphi for win32 же на подкапотном уровне удобно было реализовать его в виде double |
|
Сообщ.
#787
,
|
|
|
|
Цитата --Ins-- @ Напомни ка мне, с каких пор мы начали говорить о о языковых исключениях? Мы говорили о WinApi и СОМ!И ты думаешь что все эти параметры класса языкового исключения туда попадут и ты сможешь их обработать? Ну, код я тебе написал - дерзай, покажи мне свое приложение, которое выведет на экран сообщение об ошибке 'Invalid index: xxx' Цитата --Ins-- @ Я тебе линк дал на msdn. Ты вообще его смотрел?Ну, во-первых именно исключение ты получишь, но вот о его параметрах - ну ничегошеньки не узнаешь, потому что винапишный протокол ничего для этого не предусматривает Цитата --Ins-- @ HRESULT возвращает код ошибки. Что это обозначает? Что HRESULT возвращает код ошибки. Языковые исключения -- то уже половые трудности того, кто этот HRESULT использует.Несколько больше. Протокол COM устанавливает для языковых исключений правила игры - что и каким образом с ними должно происходить Цитата --Ins-- @ Вывод - такой протокол межмодульного и межязыкового взаимодействия - в печь! ![]() Для этого и придумали SEH. |
|
Сообщ.
#788
,
|
|
|
|
Эхх, а Мяут так ничего и не пояснил - ляпнул очередную херь с умным видом, и сбежал
|
|
Сообщ.
#789
,
|
|
|
|
--Ins--, в Дельфях с исключениями всё просто. Они там просто являются ООП-расширением SEH, а объектами исключений являются подкапотные ссылки на хиповые объекты. В Плюсах исключения - отдельная песня. У них иной принцип организации, там объектом исключения может быть не только ссылка или указатель на, но и сам произвольный класс произвольно сложной структуры, даже уровня VCL-ного визуального компонента, созданного при этом на стеке (да-да, который этим исключением счас начнёт разматываться). И тем не менее плюсовые компиляторы (большей частью, те, что так не поступает, заставляют программеров либо отказываться от исключений, либо отгребать на отладке) используют SEH, иначе C++EH исключения не будут ловиться __finally{} и наоборот - SEH исключения не будут вызывать по дороге деструктры объектов. Для Плюсов SEH суть лишь транспорт. Так что протащить через COM посредством SEH объект исключения не проблема, а если ещё и .tlb озаботиться, то и с кроссязыковость проблем не будет.
И да, у SEH исключений не нет параметров, у них есть параметры. Цитата void WINAPI RaiseException( __in DWORD dwExceptionCode, __in DWORD dwExceptionFlags, __in DWORD nNumberOfArguments, __in const ULONG_PTR* lpArguments); /* ... */ nNumberOfArguments The number of arguments in the lpArguments array. This value must not exceed EXCEPTION_MAXIMUM_PARAMETERS. This parameter is ignored if lpArguments is NULL. |
|
Сообщ.
#790
,
|
|
|
|
Цитата Повстанець @ Напомни ка мне, с каких пор мы начали говорить о о языковых исключениях? Мы говорили о WinApi и СОМ! Мы (по крайней мере я) начал о них говорить с самого начала, когда заявил что com-овский протокол обеспечивает надежное межъязыковое взаимодействие при соблюдении правил этого протокола, а сами по себе эти правила - это и есть правила, цель которых обеспечить межязыковое взаимодействие с учетом того, что в языках бывают объекты, исключения и т.д. |
|
Сообщ.
#791
,
|
|
|
|
Цитата А у дельфиста Взрезано брюхо винтом Выстрела в спину Не ожидает никто |
|
Сообщ.
#792
,
|
|
|
|
Астарот - ты флудер
|
|
Сообщ.
#793
,
|
|
|
|
Почему именно эта цифра? Но вообще около 20-ти лет. |
|
Сообщ.
#794
,
|
|
|
|
Цитата --Ins-- @ Астарот - ты флудер ![]() Нифига! Я - поэт |
|
Сообщ.
#795
,
|
|
|
|
Цитата --Ins-- @ Вопрос в другом, каким образом TDateTime не удовлетворяет этим требованиям, что ты так проклинал разработчика? вопрос в наглом перетягивании одеяла как в том анекдоте: я посередине - я нейтралитет. так вот в середине лежим системтайм, справа тдататайм, слева кудататайм. так кто нейтралитет? |