2012-01-01 2 views
4

Есть ли общий подход к написанию API приложений C++, упрощающий взаимодействие с другими языками? Может быть, что-то вроде использования языка описания интерфейса более высокого уровня для создания интерфейса C++ вместе с кодированием кода для других платформ (.NET, python, ...)?С ++ взаимодействовать с другими языками

ответ

1

SOAP/WebServices/Corba?

Хотя кажется, что вы думали о более тесной связи (например, линкер), чем это.

+0

Вы правы, я ищу что-то более легкое. Использование веб-технологий, например. плагины приложений будут overkill ... –

2

Существует несколько вариантов.

Если вы хотите взаимодействовать с .net, вы можете написать классы обертки C++/CLI. Это позволяет вам писать классы C++, которые непосредственно видны из .net, и в их реализации может использоваться ваш собственный C++.

Исторически сложилось так, что COM был использован для этой цели, но в настоящее время он менее популярен.

Существует также библиотека под названием SWIG, которая будет взаимодействовать с Java и другими языками.

Edit: Похоже, это будет легче на Windows 8 с WinRT components

+0

Мой вопрос больше похож, если я могу получить это автоматически, без написания кода шаблона (например, C++/CLI wrapper). Я фактически колебался, чтобы упомянуть SWIG в вопросе. SWIG похож на другой путь: интерфейс C++ -> API, что приводит к определенным ограничениям. –

+1

@ 7vies: В настоящее время мы делаем C++/CLI, не нашли способ сделать это более упорядоченным. Обратите внимание, что вы можете часто писать класс C++/CLI в одном файле cpp со всеми встроенными методами, что несколько уменьшает проблему обслуживания. Ситуация может улучшиться в dev-инструментах для Windows 8, так как microsoft продвигает писать собственный код для своего нового API WinRT. http://pwlodek.blogspot.com/2011/09/build-your-first-winrt-component.html –

0

Другая возможность может быть сделать extern "C" все ваши разрекламированный API (даже если его реализация в C++).

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