<div dir="ltr"><div><div>Muchas gracias por intentarlo Joaquín!<br><br></div>Si puedes compartir el código que has usado genial!<br><br></div>Estoy pensando en transformarlo en un mini artículo para ponerlo en la web de Madrid.pm!<br></div><div class="gmail_extra"><br><div class="gmail_quote">El 7 de abril de 2016, 9:25, Joaquín Ferrero <span dir="ltr"><<a href="mailto:explorer@joaquinferrero.com" target="_blank">explorer@joaquinferrero.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">El 03/04/16 a las 22:28, Pablo Rodriguez escribió:<div><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hola<br>
<br>
En la reunión del otro día comente que no había conseguido que funcionara FFI::Platypus con funciones con tipos de la STL en C++, ni siquiera con el más básico: std::string.<br>
<br>
Joaquin apuntó a un parrafo en la documentación: <a href="https://metacpan.org/pod/FFI::Platypus::Lang::CPP#the-standard-C-library" rel="noreferrer" target="_blank">https://metacpan.org/pod/FFI::Platypus::Lang::CPP#the-standard-C-library</a><br>
<br>
Tampoco he conseguido hacerlo funcionar.<br>
<br>
¿Alguien más se anima a probar?<br>
<br>
El código básico para probarlo está en el repo con las transparencias: <a href="https://bitbucket.org/pablorodriguez/slidesperlinteroperability/src/7ef0f4f8a53e0bbd8d28ea01e10e0d37ddbd0a50/examples/Platypus/Cpp/?at=master" rel="noreferrer" target="_blank">https://bitbucket.org/pablorodriguez/slidesperlinteroperability/src/7ef0f4f8a53e0bbd8d28ea01e10e0d37ddbd0a50/examples/Platypus/Cpp/?at=master</a><br>
<br>
Un saludo<br>
</blockquote>
<br></div></div>
Hola, Pablo.<br>
<br>
Sí que he conseguido que FFI::Platypus::Lang::Cpp funcione, pero solo con los tipos básicos (por ejemplo, int).<br>
<br>
Incluso el ejemplo que trae en la carpeta de ejemplos me compila y funciona, pero no he encontrado ningún ejemplo para pasar tipos complejos (como string) hacia Perl.<br>
<br>
Lo más que he conseguido es que el programa en Perl sí que sepa y reconozca la función definida en C++, y la llame, pero genera una "Violación de segmento", y creo que es debido a que no sabe transmitir el puntero de la cadena de caracteres que devuelve GiveMeAString() para luego que Perl entienda que "eso" es un puntero a una cadena de caracteres, para luego poder imprimirlo.<br>
<br>
Bueno, este fin de semana lo miro un rato más, pero la clave es esa: si los tipos básicos (los que devuelve el método native_type_map()) sí funciona, ¿cómo se pasan los tipos complejos de la STD?<br>
<br>
JF<br>
_______________________________________________<br>
Madrid-pm mailing list<br>
<a href="mailto:Madrid-pm@pm.org" target="_blank">Madrid-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/madrid-pm" rel="noreferrer" target="_blank">http://mail.pm.org/mailman/listinfo/madrid-pm</a><br>
</blockquote></div><br></div>