История изменений
Исправление Midael, (текущая версия) :
Про красиво можно забыть - как только надо связывать кресты с другими языками, «красиво» кончается.
Пункт 1 неизбегаем в любом случае, без extern с ничего не сделать, т.к. name mangling, все дела. Что такое CppSharp не знаю, но могу предположить, что оно всего лишь генерит тот самый extern c бойлерплейт для связки.
А так документацию по pinvoke с примерами в руки и вперед :)
ЗЫ. Касательно стл - внутреннее устройство вызываемого кода неважно. Главное чтобы сигнатура читалась (extern C) и данные туда-обратно гонялись в примитивном виде (вплоть до сырого указателя - через это вроде бы можно и классы маршалить). Напрямую отмаршалить std::vector в с# (да и вообще куда бы там ни было) не получится. Либо я чего-то не знаю
Исходная версия Midael, :
Про красиво можно забыть - как только надо связывать кресты с другими языками, «красиво» кончается.
Пункт 1 неизбегаем в любом случае, без extern с ничего не сделать, т.к. name mangling, все дела. Что такое CppSharp не знаю, но могу предположить, что оно всего лишь генерит тот самый extern c бойлерплейт для связки.
А так документацию по pinvoke с примерами в руки и вперед :)