Использование кода на C++ в программе на Python
Есть файл формата .cpp (язык C++), в котором описаны функции, реализующие действия наподобие поиска устройства ble, выбор потока данных, частоты и прочих параметров для конкретного устройства (усилителя биопотенциалов). В этот файл включен заголовочный файл формата .h (язык C++), он содержит объявление структур (struct) и объектов типа enum, а также видимо экспортированнные функции наподобие `NB2MCS_EXPORT int nb2GetBattery(int Id, t_nb2BatteryProperties* Battery); Начало заголовочного файла выглядит так:
#pragma once
#include <cstdint>
#ifdef _MSC_VER
#define NB2MCS_EXPORT extern "C" __declspec(dllimport)
#else
#define NB2MCS_EXPORT
#endif
#pragma pack(push, 1)
Также у меня есть приложение на Python, kivy, которому нужны некоторые функции из данного кода на C++. К сожалению аналогов в питоне я не нашла, так как программа выше это исходники от изготовителей усилителя и как получить функционал из этого NB2MCS_EXPORT в python я не понимаю.
Если кто-нибудь предложит решение как достать эту экспортируемую библиотеку напрямую в моём приложении на питоне и написать уже на питоне функционал, сходный с кодом на c++ от разработчиков, буду крайне признательна.
Пока пыталась по сути создать из кода на плюсах библиотеку, спрашивая совета у gpt. переписала заголовочный файл, попробовала сделать обёртку, устанавливала MinGW64, были попытки компилировать через g++. Но самым большим достижением стало создание некоей пустой недобиблиотеки, при попытки импорта которой появляется следующая ошибка ImportError: DLL load failed while importing neoreclib: %1 не является приложением Win32. Её создала путём написания setup.py:
from setuptools import setup, Extension
extension_name = 'neoreclib2'
source_files = [
'neorec.cpp',
]
extension = Extension(extension_name, sources=source_files, language='c++')
setup(name=extension_name,version='1.0',description='Функционал neorec для python', ext_modules=[extension])
Ошибок в процессе могло быть достаточно. Кто сталкивался с подобным, помогите. Заранее спасибо за ответы.
Windows11, Python 3.11/3.8, Pycharm
P.S весь код отправлю, если будет нужно, не хотела перегружать вопрос