Python-ctypes: bei der Initialisierung c_char_p()

Schrieb ich ein einfaches C++ - Programm zu veranschaulichen mein problem:

extern "C"{
    int test(int, char*);
}

int test(int i, char* var){
    if (i == 1){
        strcpy(var,"hi");
    }
    return 1;
}

Ich kompilieren diese in ein so. Von python nenne ich:

from ctypes import *

libso = CDLL("Debug/libctypesTest.so")
func = libso.test
func.res_type = c_int

for i in xrange(5):
    charP = c_char_p('bye')
    func(i,charP)
    print charP.value

Wenn ich diesen starte, meine Ausgabe ist:

bye
hi
hi
hi
hi

Ich erwartet hatte:

bye
hi
bye
bye
bye

Was bin ich?

Dank.

InformationsquelleAutor Mark | 2009-12-09

Schreibe einen Kommentar