Вы можете написать оболочку C вокруг любой библиотеки C ++, которая имеет API C ++.Оболочка должна быть написана на C ++.
Вы даже можете использовать свои классы C ++.Вы заранее объявляете их как struct.Некоторые компиляторы выдают предупреждение, если вы делаете это, но вы, вероятно, можете либо отключить это предупреждение, либо просто проигнорировать его.
Теперь вы создаете free-функции для создания указателя на такую структуру (не экземпляр, как выне вижу его полного определения) и избавиться от такого указателя и всех его методов, взяв его в качестве параметра.
Обратите внимание, что если класс находится в пространстве имен, вы не сможете сделатьпоэтому создайте свою собственную структуру, в которой есть только этот член, и используйте вместо этого эту «оболочку».
Для всех ваших функций Си.только в шапке поставить
#ifdef __cplusplus
extern "C" {
#endif
// all your functions
#ifdef __cplusplus
}
#endif