win32 api, что есть в случае с маком?
Смотри в апи мака
Пиши свой интероп
Что это?
https://www.mono-project.com/docs/advanced/pinvoke/
Реально, P/Invike или C++/CLI
для мака P/Invoke сейчас также доступен
Официально нету C++/CLI под Мак. Если тебе очень хочется, то можно его заклясть чтоб работало, но это надо прям очень сильно хотеть, и быть готовым к ограничениям.
Кстати, а почему решили выпилить такую удобную фичу из кора как c++/cli?
Его не выпилили. Его просто изначально не впилили. А почему — а потому, что в коре всё было новое, включая тулинг, PDB, SDK и местами даже байткод. Команда C++/CLI не была готова сразу всё это запилить. Поэтому поддержка C++/CLI появилась не сразу. Но сейчас-то она есть. Следующий вопрос: а почему с ограничениями (/clr:safe и pure — deprecated)? А потому, что это был план команды C++/CLI ещё до появления неткора. Задолбались поддерживать сценарии, в которых лучше всё переписать на C#. Следующий вопрос: а почему до сих пор нет (и вряд ли будет) поддержки других ОС, кроме Windows? А потому, что у них компилятор и вся SDK и вообще всё таргетит только Винду. Если обычный плюсовой компилятор ещё не научился в другие платформы, то и в C++/CLI ловить этого не приходится. Плюс, в рантайме поддержка этого всего очень хитрожопая, и была сильно завязана на легаси штуки типа аппдоменов, и на особенности загрузки DLL на Windows. Это будет огромная куча очень хитрого и сомнительного кода, который - будет глючить и требовать ресурсов на багфикс и поддержку (ну это полбеды) - будет дестабилизировать остальные части рантайма (даже для пользователей, которым не нужны mixed mode assemblies) - нужен очень ограниченному числу пользователей По всему выходит, что лучше никому (ни Microsoft, ни пользователям) не вкладываться в поддержку этой монстроузной технологии д-ра Франкенштейна. Это код, который в 2022 году лучше писать с использованием других техник (тот же P/Invoke, CLR hosting API, unmanaged exports etc.).
Ну, дядь, к сожалению, P/Invoke ограничен в типах передаваемых и получаемых данных.((( Вот как мне пробрасывать map'ы в библиотеку?((
Описать структуру своих мапов и маршаллить. Либо отдать пользователю мапы апишку для управления ею, а саму мапу сделать как opaque object.
А есть ссылошка на почитать, о гуру?🙏
А чего там читать?
Обсуждают сегодня