Я использую SWIG для создания оболочек для библиотеки C. Интерфейс библиотеки C имеет естественное отображение на объектно-ориентированный API (который я хотел бы представить на целевом языке), но прямое использование SWIG для создания оболочек создаст один объект на целевом языке со всеми интерфейсы библиотеки C.
Я вижу несколько вариантов:
- Создайте интерфейс C ++ для библиотеки C, затем оберните C ++ с помощью SWIG
- Создание пользовательских классов на каждом целевом языке, которые используют простой, не OO-вывод SWIG для внутреннего использования
Я бы предпочел пункт 2, но у меня такой вопрос: это нормально? Это привлекательно, потому что я хотел бы иметь полный контроль над интерфейсом на целевом языке с минимальной степенью зависимости от расширенных функций SWIG.