Тема: python + c++
Думаю це більше в цю тему
Суть:
Є бібліотека *.so, на с++ і мені треба викликати методи класу з c++ в python
Що в мене є:
хедер файл з наступним описом:
...
class XXXClient
{
public:
XXXClient(){}
virtual ~XXXClient(){}
virtual int CommOpen(const char* sPort, unsigned int nBaudRate) = 0;
...
};
// Class factory "C" functions
typedef XXXClient* create_t();
typedef void destroy_t(XXXClient*);
і є приклад на с++
...
void* lib = dlopen("XXXLib.so", RTLD_LAZY);
if(!lib)
{
cout << "Cannot load library: " << dlerror() << endl;
return 0;
}
//reset errors
dlerror();
//load the symbols
create_t* creatXXXInstance = (create_t*) dlsym(lib, "create");
const char* dlsym_error = dlerror();
if(dlsym_error)
{
cout << "Cannot load symbol create: " << dlsym_error << endl;
return 0;
}
destroy_t* destroyXXXInstance = (destroy_t*) dlsym(lib, "destroy");
dlsym_error = dlerror();
if(dlsym_error)
{
cout << "Cannot load symbol destroy: " << dlsym_error << endl;
return 0;
}
//create an instance of GTBClient
XXXClient* pXXXClient = creatXXXInstance();
...
Я зрозуміти не можу, як мені добитись того на python
Не можу зрозуміти, як працювати з вказівниками
На пайтоні вийшло наступне
lib = CDLL('XXXLib.so', os.RTLD_LAZY)
lib.create()
Метод create викликається, повертає int я так розумію, що це адреса, але як далі... Прості зв'язки з С в python робив, але тут вказівник на вказівнику і я не знаю, як мені це обробити, ще й до того ж С++, але інтерфейс то є.
Допоможіть підключити цю лібу в пайтон, щоб я міг працювати з методами классу.
Дякую