LINUX.ORG.RU

История изменений

Исправление Midael, (текущая версия) :

Про красиво можно забыть - как только надо связывать кресты с другими языками, «красиво» кончается.

Пункт 1 неизбегаем в любом случае, без extern с ничего не сделать, т.к. name mangling, все дела. Что такое CppSharp не знаю, но могу предположить, что оно всего лишь генерит тот самый extern c бойлерплейт для связки.

А так документацию по pinvoke с примерами в руки и вперед :)

ЗЫ. Касательно стл - внутреннее устройство вызываемого кода неважно. Главное чтобы сигнатура читалась (extern C) и данные туда-обратно гонялись в примитивном виде (вплоть до сырого указателя - через это вроде бы можно и классы маршалить). Напрямую отмаршалить std::vector в с# (да и вообще куда бы там ни было) не получится. Либо я чего-то не знаю

Исходная версия Midael, :

Про красиво можно забыть - как только надо связывать кресты с другими языками, «красиво» кончается.

Пункт 1 неизбегаем в любом случае, без extern с ничего не сделать, т.к. name mangling, все дела. Что такое CppSharp не знаю, но могу предположить, что оно всего лишь генерит тот самый extern c бойлерплейт для связки.

А так документацию по pinvoke с примерами в руки и вперед :)