Я заинтересован в экспериментах по встраиванию Python в мое приложение, чтобы позволить пользователю запускать скрипты Python в среде приложения, получать доступ к внутренним (реализованным на C ++) объектам и т. Д. Я довольно новичок в этом, поэтому не буду точно знаю, что я делаю.
Я прочитал Встраивание Python в другое приложение , хотя, похоже, речь идет только о API C и плоских функциях C, а не о классах или объектах (если я что-то пропустил) и о его "Embedded Python" в C ++ "раздел состоит всего из двух предложений. Тем не менее, Я также сталкивался с , как использовать boost :: python , и это выглядит превосходно.
Есть одна проблема: boost :: python не поддерживается C ++ Builder 2010 .
Итак, каков наилучший подход для встраивания Python в приложение C ++, скомпилированное с C ++ Builder 2010, и, используя любую лучшую технику, как вы выставляете / интегрируете классы и объекты, чтобы дать Python доступ кодера к объектно-ориентированным внутренностям программы? Я пропустил стандартный подход? Легко ли представить Python внутренние классы или созданные объекты как объекты, или API действительно в стиле C или плоский / не-OO, и если да, то каков наилучший подход для имитации базового уровня OO через такой API?
Примечание. На самом деле я использую RAD Studio, которая включает в себя C ++ Builder и Delphi. Может быть возможно использовать какое-то специфичное для Delphi связывание, но я встречал шесть или семь лет , или new-ish (Python 2.6), но don Кажется, у вас нет документации и есть комментарии в списке вопросов, например «Кто-нибудь читает эти комментарии [sic]? Кто-нибудь работает над этим проектом?» , что не внушает оптимизма. Но, пожалуйста, не стесняйтесь включать специфичные для Delphi ответы, особенно если вы думаете, что они будут работать в комбинированном приложении D + CB. Я ценю все ответы, даже если они не совсем идеальны - я могу исследовать, мне просто нужны указатели, куда идти. Однако нативное решение C ++, вероятно, было бы идеальным, поскольку использование объектов, производных от VCL, имеет свои ограничения.
Спасибо за ваш вклад!