VC调用Python函数,如何传递一个中文参数?如何得到中文返回值?
test2.py文件里的内容,很简单的:
# -*- coding: utf-8 -*
def Hello(s):
print s
然后我在VC 2005新建一个Console项目,调用这个test2.py里的hello函数,给Hello函数传递一个英文字符串比如"Hello Python",很正常地显示出来了。
然而传递一个"u\"你好Python\""字符串,却显示的是:
u"你好Python"
[7682 refs]
请按任意键继续. . .
请问这样的显示结果是否正确?如何去掉前面的"u"?
还有每次运行都会出现[7682 refs]是什么意思?怎么去掉它?
最后,当在VC调用某个函数以后,如何得到一个中文字符串的返回值?
VC 2005代码如下:
int test2()
{
Py_Initialize();
PyObject * pModule = NULL;
PyObject * pFunc = NULL;
PyObject * pArg = NULL;
pModule = PyImport_ImportModule("test2");
pFunc = PyObject_GetAttrString(pModule, "Hello");
pArg = Py_BuildValue("(s)", "u\"你好Python\"");
PyEval_CallObject(pFunc, pArg);
Py_Finalize();
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "chs");
test2();
system("pause");
return 0;
}