2013-06-01 2 views
1

Я сейчас в процессе прототипирования нескольких небольших приложений, предназначенных для выпуска на Mac и Windows. Естественно, это означает Cocoa с Objective-C на Mac и .NET с C# в Windows. К сожалению, поскольку эти два языка совершенно разные, работа над 4 приложениями больше похожа на работу на 8, так как я должен делать все дважды.Что такое хороший способ поддерживать общий код между C# и Objective-C?

В какой-то мере это неизбежно, но я изучаю способы обмена некоторыми из общего кода/функций, которые имеют дело с независимыми от платформы материалами (вычислениями, формулами и т. Д.).

Я рассматривал C/C++, но так как его необходимо скомпилировать в DLL для использования на C#, это, похоже, не стоит.

Теперь я изучаю язык сценариев, такой как Lua, который показывает некоторые обещания, но это не лишено и его доли осложнений. Есть ли другие способы, которые могут быть лучше?

+0

Я не знаю, насколько это хорошо на OS X, но Qt (C++) - это платформа, доступная как для ОС X, так и для Windows. Существуют и другие кросс-платформенные платформы. – mah

ответ

0

Одним из способов является использование Mono, кроссплатформенной платформы разработки с открытым исходным кодом.

http://www.mono-project.com

+0

Это выглядит многообещающе. Благодарю. – Chris

0

Вы можете использовать C/C++ как DLL, для C#. Очень легко использовать C Dll из C#, используя совместимость и маршалинг .NET. На самом деле, это было мое предпочтительное решение при разработке для iPhone и WinPhone ....

Подробнее о вызове C Dll из C#, читайте MSDN, и этот простой пример: http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.dllimportattribute.aspx

0

Технически, вы можете написать «управляемые сборки C++» для использования в .NET-приложениях, и вы можете смешивать C++ напрямую в приложения Objective-C, но синтаксис, требуемый для ссылки .NET Objects (myclass ^), достаточно различен, чтобы вы все равно не делились очень много.

 Смежные вопросы

  • Нет связанных вопросов^_^