портировать на Rust. Чтоб понять кишки взаимодействия программ между собой (всякие ABI, соглашения о вызовах и т.п).
Ограничения:
1. Нет export C, прокинуть в хедеры не могу.
2. Основной таргет - винда. А под неё компилится только MSVC.
На скрине пример того, что вообще хочу перетащить. ADDIN_API = __stdcall
Вопросы:
1. А реализуемо ли вообще то, чего я хочу добиться?
Посмотрел, что Rust может в MSVC ABI и подумал, что может выстрелить.
2. В какую сторону копнуть, чтоб понять куда вообще можно двинуться по реализации?
Мне предлагали попробовать bindgen, но он использует libclang, а под виндой только MSVC так что не получится.
Хочу есть этого слона по частям, но с чего начать - совсем не понимаю.
да, вполне себе реализуемо. если вот эти классы без сложных наследований, то даже можно сказать довольно просто bindgen тебе тут не помошник, он не умел (вряд ли что-то изменилось на текущий момент) генерировать виртуальные таблицы, поэтому придется их писать ручками посмотри как организованы виртуальные таблицы компилятора от микрософта. очень много подобных тем можно найти в околочитерских комьюнити для различных игр, там можно и какие другие вещи подчерпнуть конечно, всегда можно и вправду написать на с++ какой-то объект, что имплементирует этот класс, а внутри себя перенаправляет вызовы в более-менее известное и стабильное соглашение
Кого я вижу))))
Обсуждают сегодня