Xamarin, C++, Cocos2D-X и Visual Studio

Итак, в настоящее время у меня есть приложение для iOS, которое смешивает элементы пользовательского интерфейса iOS и Cocos2d-x (Cocos2d C++).

Я получил грубый порт, работающий для Android с Java/JNI, когда я наткнулся на Xamarin и их плагин Visual Studio. В их документации упоминается, что вместе с ним можно использовать код C++, но мне не удалось найти примеры проектов Xamarin, демонстрирующих эту функциональность.

Поддерживает ли Xamarin добавление исходного кода C++ в свои проекты Visual Studio? И если да, то позволяет ли он беспрепятственно компилировать и отлаживать этот исходный код вместе с C#?

Кроме того, есть ли примеры этой функциональности?

По сути, я хотел бы использовать переносимость пользовательского интерфейса Xamarin C# вместе с тонной кода C++ Cocos2d-x, который я уже написал.

Пожалуйста, ответьте с вопросами, если я неясен.


person Christian Stavro    schedule 27.08.2012    source источник


Ответы (2)


Исследование этого в 2014 году:

  • Общий подход к объединению кода C++ с другим языком заключается в предоставлении интерфейса вызова функций C. Обычно это означает, что ваш код C++ содержит фабричную функцию для возврата универсального указателя на ваш объект C++, который передается как void* в оболочки C. Почти каждая среда на планете может вызывать стандартные функции C, поскольку это необходимо для доступа к большинству низкоуровневых функций операционной системы.
  • В этой статье на форумах Xamarin обсуждается использование NDK для компиляции после создания обертки с CppSharp
  • Компания Skyscanner подготовила серию статей о кроссплатформенных библиотеках, состоящую из двух частей, с введение в инструменты в феврале 2014 г., за которым следует C++ ответ, в котором много подробностей, которые могут помочь в использовании C++ из Xamarin (все грубые биты NDK).
person Andy Dent    schedule 21.07.2014
comment
2016-01 После нескольких месяцев работы (в Realm) над использованием основных компонентов C++ из C# Xamarin я могу подтвердить, что единственным способом вызова вашего кода C++ остается традиционный подход вызова через C API и сведение ваших объектных структур в параметры, закодированные как родные типы C. - person Andy Dent; 03.01.2016

Я не уверен, что это точно отвечает на ваши вопросы, но, возможно, это место для начала http://tirania.org/blog/archive/2011/Dec-19.html

person sshaw    schedule 31.08.2012