私はPythonが初めてで、PythonからC関数を呼び出そうとしていて、2つの変数を受け取りたいと思っています。簡単にするために、サンプル コードを表示します。
#include <Python.h>
#include <stdio.h>
PyObject* foo(char *p)
{
printf("%s\n", p);
return Py_BuildValue("ii", 2, 2);
}
>>> from ctypes import cdll
>>> lib = cdll.LoadLibrary('./lib1.so')
>>> d = lib.foo('hello')
hello
>>> d
43128392
正しい値が出力されないのはなぜですか?
コンパイル コマンド: gcc -c -IC:\Python26\include 1.c -o 1.o
gcc -shared -Wl,-soname,lib1.so -o lib1.so 1.o -LC:\Python26\libs -LC:\Python26\PCbuild -lpython26