• Создание С\C++ API для библиотек на С++

    А (зевая).... Я изначально ушел от парсинга С++, чтобы не замарочиваться с этим. Нужно было проект завершить достаточно быстро. А так — в планах есть завершение clang обертки над bcapi — github.com/PetrPPetrov/clang-bcapi

    Поддержал: Viktor Chyzhdzenka
  • Создание С\C++ API для библиотек на С++

    Как-то загадками пишете. Современніе компиляторы — имеете в виду clang с его AST API? А что «юзалось» во времена gcc 2.95?

  • Создание С\C++ API для библиотек на С++

    Вот только сейчас подумал, что там же есть moc генератор. И он на вход берет какой-то С++ header файл и генерирует код. Для обработки там сигналов и прочее. Вот думаю, тут может біть проблема.

  • Создание С\C++ API для библиотек на С++

    Таки да. Вот основная проблема в чапи — это то, что описание API создается вручную. Однако, делать описание API вручную — намного легче, чем делать обертки вручную. У меня была даже идея самому обернуть весь QT API. И даже есть репозиторий для єтого на гитхабе, где я начинал. Хотя вам не обязательно делать описание для всего QT API, можно только для необходимого минимума, необходимого вам.

    Поддержали: Ihor Demchenko, Denys Poltorak
  • Создание С\C++ API для библиотек на С++

    Чапи создает два программных интрерфейса для С++ библиотеки, один API — это чистый С API, другой это С++ API. Билииотека на С++ может быть скомпилированна с использованием самых последних стандартов С++, например, С++ 17. Однако клиент может быть на чистом С. Еще клиентом такой библиотеки может быть старый компилятор С++, который, допустим, не поддерживает С++ 11. Поэтому я и написал С\С++, имея в виду, что и «С» и «С++».

    Поддержали: Ihor Demchenko, Denys Poltorak
  • Создание С\C++ API для библиотек на С++

    Де мішанина? Все корректно.В якой конкрентной пропозиції?

  • Топик для советов начинающим и не только — 2

    Нужна помощь: QT5 + BGFX

    Добрый день!

    Нужна помощь в интеграции библиотеки QT5 + BGFX фреймворка для 3D графики. Я, конечно, в курсе про QT3D, но нужна именно интеграция QT5+BGFX.

    Я набросал скелетон приложения, который совмещает в себе QT5+BGFX.
    Вроде бі работает, но! У меня даже, если использовать рендерер DX11 никаких проблем нет. Проблемі возникают, если переключиться на OpenGL или DX9 рендер.

    Вот мое приложение-скелет — github.com/PetrPPetrov/bgfx-qt5-win
    Какие есть идеи?
    Дякую!

    PS. Еще создал тему на gamedev.net — www.gamedev.net/...​fxqt5-rendering-problems

  • Создание С\C++ API для библиотек на С++

    ну вообще такие планы есть github.com/...​/beautiful-capi/issues/74

  • Создание С\C++ API для библиотек на С++

    bcapi — єто пратически и есть «ручками» написать extern «C» — только при помощи Python скрипта, чтобы не сильно много было писать ручками.

    Поддержал: Denys Poltorak
  • Создание С\C++ API для библиотек на С++

    Отчасти вы правы. Однако таких решений существует множество, начиная от Microsoft COM technology (довольно тяжеловесной), и всякими «проссплатформенными COM» (то же довольно тяжеловесными). Крупные производители библиотек — поддерживают все необходимые компиляторы — но для это трудоемко. Часто бывает видишь, что фирма — солидная, а вот библиотеку поддерживают для, скажем, MSVC 2012+, а старые «не поддерживаются». Однако проблема в самом С++ — нет стандартного ABI для С++. Хотя сейчас пытаются ввести «модули» в последний страндарт С++ — но еще не доделали. Проект bcapi в основном для старапов. Хотя бівает, что и старпапы имеют в качестве клиентов большие копрорации у которых «старые компиляторы» — вот тут и область применения bcapi.

  • Создание С\C++ API для библиотек на С++

    Тут имеется в виду «пользователь» — єто не пользователь ПК, а «пользователь
    библиотеки». Пользователь библиотеки — єто такой же программист, но которій ей пользуется, а не разрабатівает, поєтому и «пользователь».

  • Создание С\C++ API для библиотек на С++

    Если библиотека использует С++11\С++14 то не пофиг. Пользователь, у которого старій компилятор (по корпоративнім, скажем, соображениям) — то пользоваться такой библиотекой ему не получится. Или, скажем, на Linux, если библиотека даже не использует С++11, а была собрана при помощи флага stdc=c++11, то такую библиотеку нельзя загрузить в окружение не-С++11. И наоборот. Еще, скажем, если вы продаете коммерческую библиотеку с закрытым исходным кодом корпоративному пользователю (то есть другим софтовым фирмам), то готовтесь собирать такую библиотеку под весь зоопарк компиляторов. Версий студий начиная с 6.0, 2003, 2005, 2008, 2010, 2012, 2013, 2015, 2017, 2019, Borland C++, GCC, Clang, Digital Mars C++. И вот если вы используетет С++ 11 в библиотеки то у вас проблемы. Вы не сможете ее собрать, если компилятор клиенте не поддерживает его.Поэтому на помощь приходит bcapi. Вообще, bcapi был вдохновлен ESRI PE Library — вот ее API — help.arcgis.com/...​/geometry/geometry.htm#PE чтобы не ручками создавать эти С функции, а при помощи скрипта. Внутри за этими функциями скрыты класса\объекты. Плюс еще чтобы у клиента была использовать эти С функции в качестве С++ интерфейса bcapi генерирует С++ врапперы для таких С функций.