Ho una libreria C++ di terze parti in cui alcuni metodi di classe utilizzano buffer di byte non elaborati. Non sono abbastanza sicuro di come gestire Boost :: Python con esso.Come esporre i buffer di byte grezzi con Boost :: Python?
C++ intestazione biblioteca è qualcosa di simile:
class CSomeClass
{
public:
int load(unsigned char *& pInBufferData, int & iInBufferSize);
int save(unsigned char *& pOutBufferData, int & iOutBufferSize);
}
In bloccato con il boost :: codice Python ...
class_<CSomeClass>("CSomeClass", init<>())
.def("load", &CSomeClass::load, (args(/* what do I put here??? */)))
.def("save", &CSomeClass::save, (args(/* what do I put here??? */)))
Come posso avvolgere questi buffer prime per esporli come materie prime stringhe in Python?
'py_buffer' è di tipo' PyObject * 'e stai invocando' .buf' su di esso? –
Penso che tu abbia ragione, ci dovrebbe essere un cast da qualche parte prima di 'PyBufferObject'. Questo codice ora sta diventando obsoleto. I buffer di nuovo stile sono presenti e probabilmente è consigliabile utilizzarli. –
So che questa è una vecchia domanda, ma puoi pubblicare un link ad alcune informazioni su questi "buffer di nuovo stile"? Non riesco a trovare nulla:/ – jpihl