Ich versuche, eine C-Bibliothek in Python mit SWIG zu verwenden. Diese C-Bibliothek übergibt Funktionsergebnisse durch Argumente überall. Mit dem Online-SWIG-Handbuch ist es mir gelungen, ein Integer-Funktionsergebnis an Python zu übergeben, aber es fällt mir schwer, herauszufinden, wie man das für eine Zeichenkette macht. SWIG Typmap von C char * zu Python String
Dies ist die Essenz meines Codes:
myfunc.c:
#include <myfunc.h>
#include <stdio.h>
int mystr(int inp, char *outstr){
outstr="aaa";
printf("%s\n", outstr);
return(0);
}
myfunc.h:
extern int mystr(int inp, char *outstr);
Also im Grunde meine Frage ist, was die typemap für * outstr sollte aussehen.
Vielen Dank im Voraus.
meinst du wirklich 'outStr = "aaa";'? Ich vermute, du meintest "strcpy (outstr, aaa"); '. –
Ich denke, dass ich es tat. –
Insbesondere 'outstr = "aaa"; 'würde die Zeichenfolge, die der Aufrufer übergibt, nicht ändern. Der Parameter' outstr 'wird in der Funktion als lokale Variable behandelt, also' outstr =" aaa "; local 'outstr' zeigt auf ein unbenanntes, initialisiertes Array von 4 Zeichen '{'a', 'a', 'a'. '\ 0'} '. –