Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / библиотечные классы и VMT / 25 сообщений из 29, страница 1 из 2
18.11.2016, 17:11
    #39350000
д0k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
навеяно темой
shared_ptr и большие динамические массивы

Скажите , может кто знает.
Как загрузку разделяемых библиотек с виртуальными
методами гарантированно прибить мололотком от сборки к сборке или вобще
в разных бинарниках
что бы большие массивы библиотечных классов
можно было выгружать на диск и загружать обратно
без вызовов конструкторов и прочей инициализации.

Я отдаю себе отчет в том , что изменив библиотеку с классами,
файлы массивов станут невалидными.
...
Рейтинг: 0 / 0
18.11.2016, 17:33
    #39350017
д0k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
В идеале интерсует , что бы библиотеке
сказать при сборке сказать, а не при сборке бинарника
или велосипеду ручной загрузки в бинарнике,
что все бинарники, которым она нужна
размещали ее с одной и той же точкой входа и адресацией
в свои адресные пространства не зависимо от того
статическая она или динамическая.
...
Рейтинг: 0 / 0
19.11.2016, 01:10
    #39350195
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
д0k,

ответь на простой вопрос:
-трава или кукуруза?
...
Рейтинг: 0 / 0
19.11.2016, 02:00
    #39350200
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
Siemargl,
мне кажется все же трава , потому как ничего не понятно...
Кукурузу я ел, от нее нет такого эффекта.
...
Рейтинг: 0 / 0
21.11.2016, 10:55
    #39350813
д0k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
MasterZivSiemargl,
потому как ничего не понятно...


А что тут не понятного?

Нужно создать массив классов с вируальными функциями
инициализировать его и выгрузить на диск.

В другой программе загрузить массив из файла в память так,
что бы указатели на таблицу виртуальных методов объектов загруженных из файла
ссылались на правильную таблицу виртуальных методов этой программы.
...
Рейтинг: 0 / 0
21.11.2016, 17:30
    #39351287
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
д0k,

Ну да, бред же...

Указатель на виртуальную функцию -- это не данные, это -- код.
Код от данных все как могут пытаются отделять сейчас...

Давай так: ЗАЧЕМ тебе такое нужно ?
...
Рейтинг: 0 / 0
21.11.2016, 17:51
    #39351305
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
д0k,

Если ты экспортируешь код, то это dll/so, интерфейсы конечно должны совпадать.

Если ты экспортируешь данные, то это сериализация. Можно конечно данные десериализовать и без конструкторов.
...
Рейтинг: 0 / 0
21.11.2016, 20:09
    #39351440
д0k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
MasterZivд0k,

Ну да, бред же...

Указатель на виртуальную функцию -- это не данные, это -- код.
Код от данных все как могут пытаются отделять сейчас...

Давай так: ЗАЧЕМ тебе такое нужно ?

Давайте проверим , когда код превращается в данные
сделайте класс с виртуальным деструктором
и уберите virtual, сделайте их дампы памяти обхектов в файл и сравните
что появляется в области памяти объекта при объявлении деструктора виртуальным.


Нужен максимально простой в реализации механизм сериализации объектов на диск
из разных программ использующих одну и туже библиотеку .
...
Рейтинг: 0 / 0
21.11.2016, 20:25
    #39351454
д0k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
Siemargl
Если ты экспортируешь данные, то это сериализация.
Можно конечно данные десериализовать и без конструкторов.


Меня интересует самый простой с точки зрения кода
хак-механизм сериализации и десериализации с возможностью
массовой заргузки выгрузки больших массивов содержащих
не РОD объекты.


В C++ POD определяется от противного. Тип данных является POD’ом, если:

у него нет конструктора, деструктора и копирующей операции присваивания (то есть operator=, принимающего на входе тот же тип);
среди нестатических полей нет ссылок C++, не-POD’ов, private и protected;
нет виртуальных методов;
он ни от чего не унаследован.
По стандарту C++ простой тип данных устроен в точности так, как описано. Управляемую же структуру компилятор может реорганизовать так, как он сочтёт наиболее эффективным.


Все последствия неверного использования я себе представляю.

Нужно для отладки работы алгоритмов на больших обьемах,
что бы меньше времени уходило на
повторяющуюся бесполезную в процессе отладки инициализацию.
...
Рейтинг: 0 / 0
21.11.2016, 22:12
    #39351494
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
д0k,

Простой способ, видимо не существует.

Сложный - сделай кастомный аллокатор, и заставь все твое разношерстное хозяйство,нужное для сохранения, его использовать.
Потом таскай дамп памяти, что он нааллокировал при создании тестовых данных.
...
Рейтинг: 0 / 0
22.11.2016, 00:13
    #39351525
д0k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
Siemarglд0k,

Простой способ, видимо не существует.

Сложный - сделай кастомный аллокатор, и заставь все твое разношерстное хозяйство,нужное для сохранения, его использовать.
Потом таскай дамп памяти, что он нааллокировал при создании тестовых данных.

Кастомные алокаторы есть, но они не решают проблемы
указателя на таблицу виртуальных методов, которая плавает по адресному
пространству процесса в разных бинариках.
Я изучаю матчасть как это работает, думал может кто в курсе
и поможет ссылкой .
...
Рейтинг: 0 / 0
22.11.2016, 11:30
    #39351695
д0k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
Если кому интерсно практическое применение,
все это будет использоваться в оптимизации преобразований фурье.
...
Рейтинг: 0 / 0
22.11.2016, 12:35
    #39351758
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
д0kЕсли кому интерсно практическое применение,
все это будет использоваться в оптимизации преобразований фурьеа в какой области планируется применять преобразования Фурье?
...
Рейтинг: 0 / 0
22.11.2016, 15:37
    #39351939
д0k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
CEMbд0kЕсли кому интерсно практическое применение,
все это будет использоваться в оптимизации преобразований фурьеа в какой области планируется применять преобразования Фурье?

Сраврение спектральных портретов движущихся объектов.
...
Рейтинг: 0 / 0
22.11.2016, 17:09
    #39352073
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
д0k,

И вправду проблема.

Я посмотрел код, генерируемый gcc - указатель на VMT прописывается в объекте конструктором (и деструктором для нехиповых объектов).
Соответственно, с твоей идеей полный швах.
...
Рейтинг: 0 / 0
22.11.2016, 18:31
    #39352148
д0k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
Siemarglд0k,

И вправду проблема.

Я посмотрел код, генерируемый gcc - указатель на VMT прописывается в объекте конструктором (и деструктором для нехиповых объектов).
Соответственно, с твоей идеей полный швах.

Меня еще не покидает надежда явным предсказуемым
образом прибить VMT
к адресному пространству разных процессов через разделяемую библиотеку.

Собственно этот вопрос изначально имелся ввиду в сабже .
...
Рейтинг: 0 / 0
22.11.2016, 20:08
    #39352214
д0k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
Фундаменталку оставлю тут
потому как я уже запутался в ссылках на всевозможны частные решения
без маштабируемости и предсказуемости поведения.

Выяснил интересную штуку, которую не знал.
Оказывается адресация разделяемых библиотек в простраестве процесса
может плавать не просто в разных бинарниках, а и от запуска к запуску.
Фича сделана что бы затруднить жизнь вирусописателям и прочим злым хакерам.
...
Рейтинг: 0 / 0
22.11.2016, 23:25
    #39352308
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
д0k,

По идее, в dll будет своя независимая копия vmt, потому ничего никому прибивать не надо.
...
Рейтинг: 0 / 0
22.11.2016, 23:27
    #39352309
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
Это если не озаботится экспортом/импортом классов.

А если озаботиться, то надо проверять. Мне лень и ненужно)
...
Рейтинг: 0 / 0
23.11.2016, 05:40
    #39352352
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
д0kСраврение спектральных портретов движущихся объектов.а можно в нескольких словах про технологию применения? Читал, что преобразования Фурье творят чудеса во многих областях, хотелось бы посмотреть на то, как это применяется.
...
Рейтинг: 0 / 0
23.11.2016, 07:16
    #39352365
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
д0k,

BaseAdress задай у dll и в сохранённый файл пиши какую то константу привязанную к адресам кода (н-р, адрес функции)при загрузке проверяй на совпадение с текущим

если селфлинков между объектами нет, то работать будет на любой адресации иначе приётся в тоже самое место грузить
...
Рейтинг: 0 / 0
23.11.2016, 11:02
    #39352461
д0k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
CEMbд0kСраврение спектральных портретов движущихся объектов.а можно в нескольких словах про технологию применения? Читал, что преобразования Фурье творят чудеса во многих областях, хотелось бы посмотреть на то, как это применяется.

Классификация объектов по видео и звуку по эталонным спектрам на видео и звуковых дорожка.
Определение скоростей и траекторий движения объектов ( их спектральных портретов).

Машинные органы зрения и слуха.
Пока чисто фундаментальный стартап.
...
Рейтинг: 0 / 0
23.11.2016, 11:37
    #39352508
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
А про математическое основание статьи есть какие-нибудь почитать? Формулы посмотреть?
...
Рейтинг: 0 / 0
23.11.2016, 12:58
    #39352607
д0k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
CEMbА про математическое основание статьи есть какие-нибудь почитать? Формулы посмотреть?

Базовые формулы
тут
дополнительно в системах урвнений
фигурируют эффект доплера, интерференция из оптики ,
законы сохранения импульса из ньтоновской механики......
...
Рейтинг: 0 / 0
23.11.2016, 13:10
    #39352635
д0k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
библиотечные классы и VMT
Если более точно, проверка гепотизы из раздела 5.2
и попытка реинженерить алгоритм распознавания образов
человеческим мозгом.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / библиотечные классы и VMT / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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