我想从 python 调用一个 c++ 函数,这个 c++ 函数以 char* 作为参数,并返回字符串。下面是我的代码。
包装器.cpp
#include <Python.h>
#include <string>
#include <iostream>
using namespace std;
extern "C"
string return_string(char* name){
cout<<strlen(name)<<endl;
cout<<name<<endl;
string s = "hello ";
s += name;
return s;
}
将 wrapper.cpp 编译为 example.so
g++ -fPIC wrapper.cpp -o example.so -shared -I/usr/include/python2.7/
包装器.py
import os
from ctypes import *
lib = cdll.LoadLibrary('./example.so')
lib.return_string.restype = c_char_p
lib.return_string.argtypes = [c_char_p]
name = create_string_buffer("Tom")
s = lib.return_string(name);
print s
print name
这是我的输出
18
��H�L�l���A���
1
<ctypes.c_char_Array_4 object at 0x7f5f480be710>
如何使它起作用?