Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE3

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Открыть новую тему     Написать ответ в эту тему

HeMet

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
как раз в анонимах "интерфейс" реализован не через класс. Вернее, не обычным для класса методом виртуальных таблиц. У класса , реализующего аноним, виртуальная таблица анонима НЕ СОВПАДАЕТ с виртуальной таблицей самого класса. Это точно.

У них одинаковая реализация. Пример:
Классы и интерфейсы
Структура у экземляров класса TMyIClass будет следующая:

Код:
[PClassVMT][FRefCount][PInterfaceVMT][ i ][PIntf2VMT][PIntf1VMT]

При этом i1 это, по сути, PPIntf1VMT, а i2 - PPIntf2VMT.
При этом действия оператора as включают в себя:
1. Взятие указателя на экземляр
2. Смещение на фиксированное кол-во байт pIntf = PInstance + Offset (по-видимому, определяется во время компиляции)
3. Вызов IntfCopy(pIntf, @i)
При этом PIntf1VMT и PIntf2VMT содержат ссылки не только на свои методы, но и на методы всех интерфейсов-предков.
 
Структура экземпляра, реализующего анонимку, аналогичная:

Код:
[PClassVMT][FRefCount][PInterfaceVMT][field0]...[fieldN][PAnonymousIntf]

 

Цитата:
Последним членом такого класса будет ссылка на виртуальную таблицу анонима, кажись.

Это ссылка на VMT интерфейса анонима, состоящий из четырех указателей: _AddRef, _Release, QI и Invoke. А указатель на VMT класса находится в самом начале.
 
Моя реализация клонирования анонимных функций:
Клонирование анонимных функций

Всего записей: 212 | Зарегистр. 05-09-2007 | Отправлено: 17:35 18-01-2013 | Исправлено: HeMet, 17:38 18-01-2013
Eternal_Shield

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HeMet
Если не такой большой секрет, то для чего сие сакральное клонирование анонимов нужно? Просто интересно...

Всего записей: 767 | Зарегистр. 18-05-2009 | Отправлено: 23:13 18-01-2013
HeMet

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Eternal_Shield
Честно, в душе не шарю XD Человек спросил «а можно ли?» и мне стало интересно, можно или нет, заодно посмотрел как реализованы интерфейсы и анонимки под капотом компилятора. Можно считать ненормальным программированием  
Единственное, что могу предположить это когда контекст от вызова к вызову изменяется, а нужно передать анонимку в разные подсистемы, а метод-фабрика не доступен.

Всего записей: 212 | Зарегистр. 05-09-2007 | Отправлено: 23:42 18-01-2013
AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Если не такой большой секрет, то для чего сие сакральное клонирование анонимов нужно? Просто интересно...
я просто хотел знать, возможно ли это. И узнал - теоретически - возможно. Но труднореализуемо.  
Наверняка, например захваченную, переменную типа Tbytes код не сможет скопировать, из-за бага в компиляторе.
И сам ход обсуждения помогает лучше понять сущность замыканий.
 
 
Добавлено:
 вот практический вопрос. Я столкнулся с ним, еще когда делал DS REST на XE2. Там ведь вся ролевая система разграничения прав строится на атрибутах.
Так вот, в 64-разрядном отладочном (FULLDEBUGMODE) режиме FastMM  последней версии(как и других, наверное) портит какие-то данные атрибутов, так что приложение не может считать их, и в итоге неработоспособно.
 
я также попробовал скомпилить (тоже в 64) свой тестовый проект на  XE3, использующий Delphi Spring, которому с помощью атрибута указывал на подходящий к-тор.Так вот, FastMM портит и там.
 
Может, кто подскажет, какие свитчи потрогать, чтобы не было этой проблемы?

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 23:46 18-01-2013 | Исправлено: AlekXL, 23:47 18-01-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
может FastMM обновить ?

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 00:04 19-01-2013
GlavBuh

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pascal впервые обогнал Delphi/Object Pascal в индексе популярности TIOBE Programming Community Index за январь 2013.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Пожелание разработчикам Delphi: еще больше усильте защиту от пиратства. Можно применить хардварные ключи, отпечатки пальцев и сканеры радужной оболочки.

Всего записей: 96 | Зарегистр. 13-11-2003 | Отправлено: 20:38 19-01-2013
sergionn

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
какая то хрень происходит:
сначала главный архитектор Smart Mobile studio попал в аварию,
теперь вот пишут что с главным архитектором Mobile Studio тоже случились неприятности, и имеет место быть задержка выхода продукта ..............
 

Всего записей: 472 | Зарегистр. 02-11-2011 | Отправлено: 15:16 21-01-2013 | Исправлено: sergionn, 16:58 21-01-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
...а вот если бы они готовили среду для Windows Phone 8...

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 15:23 21-01-2013
HeMet

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
теперь вот пишут  

Где такие вещи пишут?

Всего записей: 212 | Зарегистр. 05-09-2007 | Отправлено: 18:53 21-01-2013
sergionn

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Где такие вещи пишут?

_http://www.board4allcz.eu/showthread.php?t=531812

Всего записей: 472 | Зарегистр. 02-11-2011 | Отправлено: 18:55 21-01-2013
HeMet

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sergionn
Там только про Smart Mobile Studio. Про Mobile Studio от Эмбы ничего печального.

Всего записей: 212 | Зарегистр. 05-09-2007 | Отправлено: 19:45 21-01-2013
sergionn

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Про Mobile Studio от Эмбы ничего печального.

эх, ты не понял мой сарказм

Всего записей: 472 | Зарегистр. 02-11-2011 | Отправлено: 20:21 21-01-2013
Smog



Жираф-Сибиряк
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
здрасьте. ВОзможно ли в версию стартер запихнуть компонент XmlDocument со страницы интернет?

Всего записей: 5394 | Зарегистр. 20-06-2003 | Отправлено: 03:26 22-01-2013
AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
может FastMM обновить ?

нет, проблема с атрибутами в FastMM с sf.net в 64-разрядном остается

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 08:28 22-01-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а багу на SF повесил ?

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 10:19 22-01-2013
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XE3 мне не нравятся - не работает FIBPlus
 
Добавлено:
На треккерах его тоже хают

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 19:07 22-01-2013
AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
а багу на SF повесил ?
как бы. Но этот проект с сентября не обновлялся. Что-то не верится, что исправят скоро. Да к тому ж эта проблема еще на xe2 была.
 
 
Добавлено:

Цитата:
XE3 мне не нравятся - не работает FIBPlus
 
Добавлено:
На треккерах его тоже хают

что бы это значило?

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 11:37 23-01-2013 | Исправлено: AlekXL, 11:38 23-01-2013
ZBEP



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
Перешел с XE2 на XE3, в настройках вроде ничего не трогал.
(только выставил: Editor Options - Code Insight - Auto invoke = True)
Возможно конечно, случайно в настройках что-то тыкнул, не помню..
 
Сейчас вот заметил, что окно "Structure" (верхнее, слева) - пустое, когда я во вкладке "Code".
Как сделать так, как было по умолчанию в XE2 и прошлых версиях?

Всего записей: 186 | Зарегистр. 09-04-2009 | Отправлено: 09:31 24-01-2013 | Исправлено: ZBEP, 09:38 24-01-2013
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GlavBuh
sergionn
 
У SmartMS вышла beta2 версии 1.1 - _http://smartmobilestudio.com/2013/01/21/smart-mobile-studio-v1-1-beta-2/
 
Так что с проектом все более менее ок!) Не переживаем))
 
А то, что паскаль и дельфи - немного разные вещи, это да. В последнее время появилось несколько важных для паскаля вещеий - кроссплатформенный Oxygene на всех мажорных мобильных платформах (iOS, Android, WP), Lazarus релизнулся наконец 1.0, FPC догоняет Delphi по фичам языка (а где то и перегоняет - JVM CodeGen), вышла SmartMS. Это хорошо: конкуренция))

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 10:41 24-01-2013
sergionn

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
deks
Я больше переживаю за mobile studio  и немеряное количество багов в обезьянке.
В оксиджене меня смущает его бесполезность - в нуге он точно повторяет всю экосистему х-кода и стиля обджект-с, поэтому какой смысл писать на нем для osx и ios ибо:
1) Старый паскалевский КОД не прикрутишь без сильных переработок
2) Отсутствует кроссплатформенная прокладка позволяющая писать единый код для разных платформ
3) Лишние танцы с конечным деплойментом программ
4) Зависимость от ремобджектов при выходе новых версий, портировании сторонних либ
проще сразу писать на родном для платформы языке..........
 
Году этак в 2011 Эрик обмолвился на сайте смарта, что мол готов был начать перекладывать свой dwscript на llmv, но тут поступило предложение  от Jon Lennart прикрутить dw к смарту, на что он с удовольствием согласился, впоследствии убрав из опенсорса js кодеген, и сделав его эксклюзивно для смарта. Давеча я закинул на гугль плюс предложение возобновить портирование под llmv - но должного отклика не получил - нах никому это не надо, и тем более самому эрику - ему лишь бы на форуме хрень всякую пописать, куда уж тут до зарабатывания денег.
 
В смарте мне не нравятся, по аналогии с оксидженом:
 
1) Серьезные отступления от родного object pascal - сложности при портировании
2) Мало родных паскалевских компонентов - можн осказать их нет почти........
3) Хреновый визуальный дизайнер - можно сказать он нифига не визуальный почти
4) Нет четкой и продуманной системы классов - все примеры имеют оч. разный подходы к реализации
5) Задержки с трансляцией функций от спецификации консорциума - некоторые функции  вебкит уже поддерживает уже давно, но ребата из оптималесис их еще не прописали у себя.........
 
FPC такой же тормозной как и компилятор дельфи,
компоненты по большей части недоделанные, кросплатформенность по части osx и ios можно сказать никакая.  
 
Вышел qt5 - я было обрадовался, но радость была недолгой - ровно 5 минут скачивания и установки,
оказалось нет поддержки visual studio 2012 из коробки (и пока как я понял мало кому удалось перекомпилировать библиотеки под 2012) - а у меня закуплена и стоит только она.
Жду весеннего релиза  - обещают поддержку vs, + беты для ios и android суппорта  
тут и Moble studio может нарисуется - ВОТ и будут расставлены все точки окончательно.........
сорри за полулирическое отступление..........
 

Всего записей: 472 | Зарегистр. 02-11-2011 | Отправлено: 11:45 24-01-2013 | Исправлено: sergionn, 12:01 24-01-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE3


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru