Как с помощью класса C++, экспортируемых из DLL
Привет,
У меня есть логика для разбора файла на c++. Он реализован как класс say logReader.
Чего я пытаюсь добиться, так это экспортировать этот класс из файла и использовать его в Python.
Итак, чтобы создать Dll, я создал 2 функции и экспортировал их из dll.
это выглядит примерно так
#ifndef DLL_EXPORT_IMPORT #define DLL_EXPORT_IMPORT extern "C" __declspec (dllexport) #else #define DLL_EXPORT_IMPORT extern "C" __declspec (dllimport) #endif typedef mudpLog*(*fpGetMudp)(); typedef void (*fpDeleteMudp)( LogReader*& pObj); DLL_EXPORT_IMPORT LogReader* GetLogPtr(); DLL_EXPORT_IMPORT void DeleteLogReader( LogReader*& mudpObj);
и в конце python я использую что-то вроде этого
from ctypes import *; class Sample(object): def __init__(self, object): mudp_data = (c_ubyte*32008)(); self._lib = CDLL(object); self._handle = self._lib.GetLogPtr; => self._handle.restype = pointer(); ##Here i done knw what i should give self._handle.argtype = None; => self._handle.restype = pointer(); ##Here i done knw what i should give print self._handle.Open( "E:\\log_20180406_141933_001.txt" );# # self._handle.ReadNext(_data); ## Invoke a function with the class object pointer lib = Sample("mudp_library.dll");
Есть ли для этого какое-то положение? Я получил так много статей, упоминающих о функциях Си. Я все еще исследую и нашел некоторые другие статьи, такие как BOOST_PYTHON_MODULE & SWIG, Cython.
Что будет лучше всего использовать и есть ли какое-либо другое положение, чтобы сделать то же самое, кроме использования любой из этих оберток.
Что я уже пробовал:
Исследования через интернет и до сих пор продолжаются