No puedo reproducir el ejemplo básico de SWIG en Windows. Mi error está en los documentos SWIG y estoy seguro de que hago las 2 correcciones que mencionan. Para este error: >>> import example Traceback (most recent call last): File “”, line 1, in ? File “example.py”, line 2, in ? import _example ImportError: No […]
Estoy escribiendo enlaces de swig para algunas funciones de c. Una de estas funciones toma un flotador **. Ya estoy usando cpointer.i para los punteros normales y busqué en carrays.i , pero no encontré la forma de declarar un flotador **. ¿Que recomiendas? archivo de interfaz: extern int read_data (const char * file, int * […]
Tengo una biblioteca que toma una estructura de imagen en C muy simple: // Represents a one-channel 8-bit image typedef struct simple_image_t { uint32 rows; uint32 cols; uint8 *imgdata; } simple_image; No creé esta biblioteca, ni esta estructura, así que no puedo cambiarla. Soy responsable de envolver esta biblioteca para python utilizando SWIG. El envoltorio […]
¿Puedo exponer una enum C ++ a SWIG como una entidad real en lugar de un conjunto de constantes para poder enumerarlas en el código de Python?
Esto está muy relacionado con esta pregunta. Independientemente de si esto es o no una práctica de encoding, me he encontrado con un código que se ve así prueba.hh #include using std::vector; class Test { public: vector data; }; Estoy intentando cambiar esto usando swig3.0 usando el siguiente archivo de interfaz test.i %module test_swig %include […]
Tengo el siguiente código, que implementa una clase simple de C ++ (ObjWithPyCallback) con una función de callback de Python. La idea es llamar a la función Python con “esto” como único argumento. El problema es que, dado que ObjWithPyCallback es un objeto envuelto SWIG, necesito el tipo de información SWIG para crear un objeto […]
Quiero crear un contenedor python para mi biblioteca C ++. Sería genial si hubiera una conversión automática de std :: vector a las listas de python y al revés. Desafortunadamente, si agrego este código a mi archivo de interfaz, todavía recibo errores en tiempo de ejecución. %typemap(in) std::vector value (std::vector vIn) { int iLen = […]
Estoy tratando de envolver una biblioteca de C ++ que usa auto_ptr. Estoy usando swig y quiero generar enlaces de python. He visto la sección del documento de swig sobre cómo usar swig con punteros inteligentes aquí . Pero no puedo hacerlo funcionar. Swig genera código que quiere inicializar auto_ptr usando una referencia constante, pero […]
Estoy tratando de escribir un contenedor SWIG para una biblioteca de C que utiliza punteros a funciones en sus estructuras. No puedo averiguar cómo manejar estructuras que contienen punteros de función. Un ejemplo simplificado sigue. prueba.i: /* test.i */ %module test %{ typedef struct { int (*my_func)(int); } test_struct; int add1(int n) { return n+1; […]
Quiero saber si hay alguna forma de exponer una clase de C ++ a Python pero sin construir una biblioteca compartida intermedia. Aquí está mi escenario deseable. Por ejemplo tengo la siguiente clase de C ++: class toto { public: toto(int iValue1_, int iValue2_): iValue1(iValue1_), iValue2(iValue2_) {} int Addition(void) const {if (!this) return 0; return […]