我写了一个简单的C++程序来说明我的问题:的Python ctypes的:初始化c_char_p()
extern "C"{
int test(int, char*);
}
int test(int i, char* var){
if (i == 1){
strcpy(var,"hi");
}
return 1;
}
我编译成这样这一点。从蟒蛇我打电话:
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
当我运行这一点,我的输出是:
bye
hi
hi
hi
hi
我预计:
bye
hi
bye
bye
bye
我缺少什么?
谢谢。
谢谢,将它改为charP = create_string_buffer(“bye”),修复了我的问题。我应该更好地审查文档。 – Mark 2009-12-09 03:30:38