|
|
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
Почему автоматический подсчет ссылок в Delphi XE работает только в компиляторах для IOS? То есть, такой код приведет к утечке памяти: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Нужно сначала заносить результат работы "func" в переменную, эту переменную передавать в "proc" и затем удалять объект. Сплошные неудобства. Почему разработчики Delphi так ненавидят меня? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 17:58 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
amadeusПочему разработчики Delphi так ненавидят меня? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 18:07 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
Фэйтл Эра, Кому то не нравится подсчет ссылок :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 18:13 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
amadeusПочему разработчики Delphi так ненавидят меня? Потому что ты не в состоянии понять разницу между классами и интерфейсами, очевидно. У Дельфи изначально предполагался низкий порог вхождения, но всё же не под плинтусом. Так что меняй ориентацию, Ява - твоё всё. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 18:33 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
авторПотому что ты не в состоянии понять разницу между классами и интерфейсами, очевидно. То есть, они ненавидят всех, кто не в состоянии понять эту разницу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 19:08 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
amadeusТо есть, они ненавидят всех, кто не в состоянии понять эту разницу? Нет, об этом уже позаботилась природа. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 19:22 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
amadeusавторПотому что ты не в состоянии понять разницу между классами и интерфейсами, очевидно. То есть, они ненавидят всех, кто не в состоянии понять эту разницу? это ты ненавидишь всех, кто знает, в чём разница ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 19:22 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
amadeusТо есть, они ненавидят всех, кто не в состоянии понять эту разницу? Это не они, просто натура абхорэт вакуум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 19:28 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Однако, нельзя сказать, что соединение интерфейсов и подсчета ссылок это хорошее архитектурное решение. Это независимые понятия, и в такой реализации видится явная кривизна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 19:30 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
asviridenkovнельзя сказать, что соединение интерфейсов и подсчета ссылок это хорошее архитектурное решение Как бы и да, но - "вот так сделали", и ничего тут не поделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 19:31 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
asviridenkovв такой реализации видится явная кривизна. Ну да, ставить знак равенства между COM и IUnknown было реально плохой идеей. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 19:35 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
asviridenkovDimitry Sibiryakov, Однако, нельзя сказать, что соединение интерфейсов и подсчета ссылок это хорошее архитектурное решение. Это независимые понятия, и в такой реализации видится явная кривизна. Не хотите, так не считайте. К слову говоря, реализация интерфейсов в делфи реализована отлично. Потом идет .net и далее си++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 19:58 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovasviridenkovв такой реализации видится явная кривизна. Ну да, ставить знак равенства между COM и IUnknown было реально плохой идеей. Так знак равенства между COM и IUnknown в делфи не стоит. Можно легко реализовать IUnknown без системной реализации COM и реализация будет работать с кодом на .net и си++. А за счет виртуальных интрефейсов можно прикрутить любой код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 20:01 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
Нельзя реализовать COM без IUnknown. Кусок с отрицательным смещением у классов мешается. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 20:07 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
Может быть, можно поставить какую-нибудь галочку, чтобы механизм заработал, и объекты удалялись автоматически, как в iOs? Возможно, директиву компилятора... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 20:19 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
Нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 20:22 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНельзя реализовать COM без IUnknown. Кусок с отрицательным смещением у классов мешается. Понятное дело. Нигде нельзя. Я о том, что IUnknown можно реализовать без COM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 20:53 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
ziv-2014Понятное дело. Нигде нельзя. Вообще-то - можно. Причём практически везде. Но не в Дельфи. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2019, 22:21 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovziv-2014Понятное дело. Нигде нельзя. Вообще-то - можно. Причём практически везде. Но не в Дельфи. Везде - это где? Назови хотя бы один? В си++ и си# это так, это технология COM. В основе COM лежит реализация IUnknown. В любой интерфейс наследуется от IUnknown. Если не видно реализации IUnknown, значит эта реализация засунута в внутрь. Давай код выкладывай, где реализация COM реализована без реализации IUnknown. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2019, 09:12 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
ziv-2014Везде - это где? Назови хотя бы один? В си++ и си# это так, это технология COM. В основе COM лежит реализация IUnknown. COM это всего лишь стандарт на двоичную раскладку абстрактного класса и его VMT. Над ним - IUnknown (COM+/OLE), который резервирует первые три слота VMT под функции поддержки factory вообще и CoCreateInstance в частности, ещё выше - IDispatch (OLE Automation). В FPC без проблем создаются СОМ-совместимые Corba-классы у которых IUnknown и близко не лежал. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2019, 14:55 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovziv-2014Везде - это где? Назови хотя бы один? В си++ и си# это так, это технология COM. В основе COM лежит реализация IUnknown. COM это всего лишь стандарт на двоичную раскладку абстрактного класса и его VMT. Над ним - IUnknown (COM+/OLE), который резервирует первые три слота VMT под функции поддержки factory вообще и CoCreateInstance в частности, ещё выше - IDispatch (OLE Automation). В FPC без проблем создаются СОМ-совместимые Corba-классы у которых IUnknown и близко не лежал. Ты ошибаешься. Сам же пишешь, чтобы класс был COM совместимым для него необходимо VMT и указатели на функции. Соответственно IUnknown будет реализован внутри. Вызови QueryInterface(IUnknown, unk) и получишь указатель на IUnknown. Иначе класс не будет COM-совместимым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2019, 17:55 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
amadeus, Но вообще то в Delphi под Windows разрешена адресная арифметика и всякие там pointer --> integer --> pointer преобразования. Вся VCL построена на этом. И становится понятно, что сборщик мусора сделать (в Delphi под Windows) не реально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2019, 18:04 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
ziv-2014Соответственно IUnknown будет реализован внутри. С чего бы вдруг? AddRef, Release и QueryInterface это обычные методы, ничем не лучше и не хуже других, точно так же лежащих в VMT. Выкинь их и СОМ останется, а вся иерархия IUnknown исчезнет как страшный сон. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2019, 18:40 |
|
||
|
Почему автоматический подсчет ссылок работает только в компиляторах для IOS?
|
|||
|---|---|---|---|
|
#18+
Кроик Семёнamadeus, Но вообще то в Delphi под Windows разрешена адресная арифметика и всякие там pointer --> integer --> pointer преобразования. Вся VCL построена на этом. И становится понятно, что сборщик мусора сделать (в Delphi под Windows) не реально.Реально, если делать самому. Я вот в одном из проектов сделал классический эрзац гарбаж коллектор. Иначе из-за специфики было трудно ловить освобождаются объекты. Просто все нужные мне классы рождались от специального моего типа TCountable, внутри которого была реализована работа по ведению списка этих самых объектов по типам и удаления их когда они уже не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2019, 18:56 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39778828&tid=2039755]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
75ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 520ms |

| 0 / 0 |
