Есть ли общий подход к написанию API приложений C++, упрощающий взаимодействие с другими языками? Может быть, что-то вроде использования языка описания интерфейса более высокого уровня для создания интерфейса C++ вместе с кодированием кода для других платформ (.NET, python, ...)?С ++ взаимодействовать с другими языками
ответ
SOAP/WebServices/Corba?
Хотя кажется, что вы думали о более тесной связи (например, линкер), чем это.
Существует несколько вариантов.
Если вы хотите взаимодействовать с .net, вы можете написать классы обертки C++/CLI. Это позволяет вам писать классы C++, которые непосредственно видны из .net, и в их реализации может использоваться ваш собственный C++.
Исторически сложилось так, что COM был использован для этой цели, но в настоящее время он менее популярен.
Существует также библиотека под названием SWIG, которая будет взаимодействовать с Java и другими языками.
Edit: Похоже, это будет легче на Windows 8 с WinRT components
Мой вопрос больше похож, если я могу получить это автоматически, без написания кода шаблона (например, C++/CLI wrapper). Я фактически колебался, чтобы упомянуть SWIG в вопросе. SWIG похож на другой путь: интерфейс C++ -> API, что приводит к определенным ограничениям. –
@ 7vies: В настоящее время мы делаем C++/CLI, не нашли способ сделать это более упорядоченным. Обратите внимание, что вы можете часто писать класс C++/CLI в одном файле cpp со всеми встроенными методами, что несколько уменьшает проблему обслуживания. Ситуация может улучшиться в dev-инструментах для Windows 8, так как microsoft продвигает писать собственный код для своего нового API WinRT. http://pwlodek.blogspot.com/2011/09/build-your-first-winrt-component.html –
Другая возможность может быть сделать extern "C"
все ваши разрекламированный API (даже если его реализация в C++).
- 1. Взаимодействие с другими языками?
- 2. Классы C# взаимодействуют с другими языками .NET.
- 3. NLTK synset с другими языками
- 4. Как взаимодействовать с другими терминалами?
- 5. Вопрос о переменной C# с другими языками
- 6. Создать файл с другими языками в php
- 7. Работы LibShortText с другими языками тоже?
- 8. Delphi DLL, совместимый с другими языками программирования
- 9. Как взаимодействовать с другими формами приложений
- 10. Директивы, которые могут взаимодействовать с другими директивами
- 11. Как взаимодействовать с другими программами с OLE Automation в C#?
- 12. Как скорость ironpython сравнивается с другими языками .net?
- 13. Python Tkinter (копировать/вставить не работает с другими языками)
- 14. Может ли gwt использоваться с другими языками, кроме java?
- 15. Приложение для полноэкранного терминала с рубином (или другими языками)
- 16. Переменная кэширование в JavaScript по сравнению с другими языками
- 17. использование jsreport с другими языками (не на английском языке)
- 18. Производительность I/O сокета Python по сравнению с другими языками
- 19. Могу ли я использовать silverlight с другими серверными языками?
- 20. Тессеракта работает с другими языками, но не Tess4J
- 21. Легко ли узнать WPF по сравнению с другими языками?
- 22. Может ли DLL использоваться с другими языками программирования?
- 23. Каковы преимущества использования Prolog над другими языками?
- 24. Как сделать optparse в python другими языками
- 25. Права на приложение, которое будет взаимодействовать с другими приложениями
- 26. Как мне взаимодействовать с другими приложениями на C++?
- 27. Может ли решение Kamailio взаимодействовать с другими серверами?
- 28. Как сделать «серверный» скрипт PHP взаимодействовать с другими сценариями
- 29. Как написать программу, которая может взаимодействовать с другими программами
- 30. Как взаимодействовать с Wiegand RFID-считывателем/автором?
Вы правы, я ищу что-то более легкое. Использование веб-технологий, например. плагины приложений будут overkill ... –