Информация об изменениях

Сообщение Re[2]: .Net Core Вызов виртуальных методов нативных объектов от 12.11.2016 21:02

Изменено 12.11.2016 21:13 Serginio1

Здравствуйте, rm822, Вы писали:

R>Короткий ответ — нет.

R>Ты и в обычном .net их толком не вызовешь без type library или IDispatch потому что
R>а) для вирт. метода нужно знать индекс в таблице вируальных функций
Ну так описывая класс виртуальными методами мы и описываем VMT
По сути это ничем не отличается от IUnknown
R>б) этих таблиц может быть несколько, и надо знать индекс таблицы
Это как? Интерфейсы не рассматриваем. Только VMT. При этом на С++ нет проблем их использовать.
R>в) данные базового класса могут иметь смещение и его тоже нужно знать
Данные не интересуют. Интересуют только VMT
Здравствуйте, rm822, Вы писали:

R>Короткий ответ — нет.

R>Ты и в обычном .net их толком не вызовешь без type library или IDispatch потому что
R>а) для вирт. метода нужно знать индекс в таблице вируальных функций
Ну так описывая класс виртуальными методами мы и описываем VMT
По сути это ничем не отличается от IUnknown
R>б) этих таблиц может быть несколько, и надо знать индекс таблицы
Это как? Интерфейсы не рассматриваем. Только VMT. При этом на С++ нет проблем их использовать.
R>в) данные базового класса могут иметь смещение и его тоже нужно знать
Данные не интересуют. Интересуют только объект первым полем является ссылка на VMT.
И описание этой VMT на C#. И почему это не сделать для совместимости в .Net Core c нативным кодом?