So quasi che nessun C++ non aiuta, e il mio XS non è molto meglio. Sto creando un'interfaccia XS per una libreria C++ e ho quasi tutti i miei metodi di lavoro tranne uno.Perl XS e C++ passano il puntatore al buffer
Il metodo in Perl dovrebbe assomigliare a questo:
$return_data = $obj->readPath($path);
Il metodo viene definito come questo file h:
int readPath(const char* path, char* &buffer, bool flag=true);
"Buffer" andranno assegnati se è passata in NULL .
Esistono due versioni aggiuntive di readPath con diverse firme, ma non sono quelle che desidero. (E, cosa interessante, quando provo a compilare mi dice che i "candidati" sono i due che non voglio.) È perché non sta capendo il "char * &"?
Qualcuno può aiutare con lo xsub che devo scrivere?
Sono su Perl 5.14.2.
BTW - Ho anche utilizzato una typemap "long long int" su T_IV. Non riesco a trovare alcuna documentazione su come digitare typemap correttamente a lungo. Qualche suggerimento su come dovrei scrivere per lungo?
Grazie,
La parte della risposta che ho risolto per me era capire che non avevo bisogno di usare la struttura C++ XS - Class :: method (...) - in xsub. Ho continuato a cercare una firma che XS avrebbe accettato, ma una volta eliminata la questione è stata molto più facile da risolvere. Grazie. – user1446426