У меня есть проблема с написанием функций postgres в C++, следуя инструкциям для C: C-Language Functions. Я обнаружил, что большинство функций postgres написаны на C вместо C++, но я должен использовать lib, написанный на C++, поэтому я выбрал C++. Мой вопрос: есть ли что-нибудь, что можно заметить при написании на C++? Обычно писать make-файлы с помощью pgxs, так как я должен писать make-файл, чтобы заставить его работать? Благодарю.Написание функций PostgreSQL в C++
ответ
Если вы можете избежать этого, сделайте это. PostgreSQL не очень хорошо сочетается с C++. Возможно,
, как показано PostGIS
, но это не слишком весело.
Если вы можете, напишите или сгенерируйте чистую C-оболочку в свою C++-библиотеку и используйте эту оболочку для взаимодействия с библиотекой. Это будет непрактично, если он сильно основан на шаблонах (например, boost) или использует другие более сложные функции C++, но работает хорошо, если это всего лишь код стиля C-с-объектами. SWIG может помочь создать обертку для вас.
Если вы предпочитаете избегать подхода к обертке или если ваша библиотека слишком сложна, слишком зависима от исключения и т. Д., То вы должны read this PostgreSQL manual entry.
Искать список рассылки PostgreSQL для более подробной информации по этой теме.
- 1. Postgresql, написание просмотров
- 2. Написание процедуры в PostgreSQL 9.1
- 3. Написание функций связанного списка
- 4. Написание неблокирующих функций DOM
- 5. Написание асинхронных функций javascript
- 6. PostgreSQL: оценка выражения SQL из C-функций
- 7. Отладка пользовательских функций PostgreSQL
- 8. Написание запросов для PostgreSQL БД
- 9. Написание функций, связанных с доменом в NodeJS
- 10. Написание программ с помощью структур и функций в C
- 11. Написание функций send_all и recv_all для сокетов в C
- 12. Написание декоратора для функций R
- 13. Написание рекурсивных шаблонов haskell-функций
- 14. Написание рекурсивных функций - Eloquent JS
- 15. Написание моей собственной функции агрегации в postgresql
- 16. PostgreSQL функций и триггеров
- 17. написание уникальных функций с теми же аргументами
- 18. Написание пользовательских функций в Sequelize Атрибут
- 19. Написание действительно частных функций в Javascript
- 20. Написание нескольких функций в модуле javascript AMD
- 21. Написание функций внутри классов в Python
- 22. Написание функций огурца для доступа к SVN
- 23. Написание тестов на модуле C++ рядом с объявлениями функций/классов
- 24. Написание пользовательских функций Свечи искрового колонка/Dataframe
- 25. C# написание в реестр
- 26. написание Makefile в C
- 27. Написание драйверов в C#
- 28. Написание SQL-запроса с использованием агрегатных функций.
- 29. Написание исходного кода Unicode C++
- 30. Реализация функций расширения C для PostgreSQL - как это сделать? (передача данных между C/PostgreSQL)
О чем нужно подумать, так это то, что вам, возможно, стоит пометить вашу C++-функцию как «extern» C ". –
@JoachimPileborg Увы, это не так просто. palloc() усложняет ситуацию, обработка исключений C++ не очень хорошо работает с C без очень защитного кодирования на всех точках интерфейса C/C++, а обработка ошибок на основе longjmp Pg бросает основной ключ в работу. –
Чтобы перефразировать Linus: C++ был создан только для привлечения идиотов. – wildplasser