我是python的新手,我試圖從python調用C函數並想要接收兩個變量。爲了保持它的簡單我顯示我的樣本代碼: Python,在python代碼中處理Py_buildValue
#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 \包括1.C -o 1.O
GCC -shared -Wl,-soname,lib1.so -o lib1.so 1.O -LC:\ Python26 \ libs -LC:\ Python26 \ PCbuild -lpython26
你爲什麼把它作爲一個C函數,而不是導入它作爲一個C擴展模塊的? – jfs