Работа с контейнерами стандартной библиотеки C++ в Python

Столкнулся с проблемой при работе с контейнером стандартной библиотеки C++. В Python, ctypes имеет очень ограниченный набор типов ( вернее исключительно типы C).

В моем случае: Есть скомпилированный файл libtopy.so Заголовок topy.h:

#ifndef TOPY_TOPY_H
#define TOPY_TOPY_H
#include <vector>
#include <string>

extern "C" {
    bool saveImageByCPPCode(const std::vector<unsigned char> &vec, const std::string &filename);
}

#endif //TOPY_TOPY_H

Принты о начале записи и её конце - распечатывает. Но сохранение - Нет. Код на python:

import ctypes
import pathlib
import os



libname = pathlib.Path().absolute() / "libtopy.so"
lib = ctypes.CDLL(libname)

b = "asdasd"
b = str.encode(b)
b = (ctypes.c_ubyte * 6)


lib.saveImageByCPPCode(vector = b, string ="/home/ilya/cmd_save/img.jpg")

Если запускать код на C++, все работает без проблем и сохраняет. Прошу подсказать, существует ли инструмент, работающий с контейнерами стандартной библиотеки С++? ctypes увы, не подходит. пробовал использовать просто строку - как байты, картинку конвертировал или принимал в пост запросе - не выполняется запись (скорее всего не может). Проблема возникает с отправкой Вектора.


Ответы (0 шт):