Работа с контейнерами стандартной библиотеки 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 увы, не подходит. пробовал использовать просто строку - как байты, картинку конвертировал или принимал в пост запросе - не выполняется запись (скорее всего не может). Проблема возникает с отправкой Вектора.