Я «перевожу» код с С++ на python, используя ctypes. Обычно я бы не сидел и не переводил код с C++ на Python, но проект, над которым я работаю, требует этого.
Исходный код C++ имеет структуру, отформатированную следующим образом;
typedef struct {
ViChar resourceString[256];
}BP2_DEVICE;
В основном коде указатель был инициализирован следующим образом;
BP2_DEVICE* resStr = 0;
Затем выделяется память;
resStr = (BP2_DEVICE *)malloc(256);
При поиске помощи в Интернете я прочитал, что создание класса для представления структуры BP2_Device будет работать;
class BP2_Device:
def __init__(self, resourceString):
self.resourceString = resourceString
Хотя я не уверен, как бы я включил тот факт, что 'resourceString' должен быть изменяемым массивом. Я знаю, что код для преобразования resourceString в изменяемый массив будет следующим:
resourceString = ct.create_string_buffer(256)
Что касается того, как заставить его работать со структурой/классом, я не знаю.
Я также просмотрел этот вопрос для справки с malloc, но их настройки не совсем такие, как у меня.
Общий код довольно длинный, и я не хочу перегружать им вопрос. Если есть что-то, что мне нужно добавить, чтобы уточнить, пожалуйста, дайте мне знать. Любая помощь приветствуется, спасибо.