如何从指向字符串的PyObject中获取char*。例如,这是python脚本
Test.Connect("272.22.20.65", 1234)
这是C++代码,
static PyObject* Connect(PyObject *self, PyObject *args)
{
PyObject* pIP;
PyObject* pPort;
if (!PyArg_UnpackTuple(args, "Connect", 2, 2, &pIP, &pPort))
{
return NULL;
}
const char* zIP = GetAsString(pIP);
long iPort = PyLong_AsLong(pPort);
我想把这个IP地址作为char*(GetAsString是一个伪函数:D)。请注意,我使用的是Python3.1。
附则。 我认为这个问题没有得到正确的答案, 因为在Python 3中没有PyStringObject或PyString-AsString。不是吗?
这是我的便携式配方,它使使用默认编码,在适用的地方。它假设您从名为
o
的PyObject*
开始。如果函数调用中仍有输入元组,则可以跳过前两行。注:我还没有测试过它,但它也应该可以与旧版本的Python一起使用。上面没有版本特定的内容。
先是你encode it,然后是你retrieve it。别忘了把这个临时的降下来。
相关问题 更多 >
编程相关推荐