我在 C++ 程序中嵌入了一个小的 python 脚本。在将 python 对象暴露给 C++ 程序并将值复制到 C++ 变量后,我尝试将其类型转换为结构,但我没有得到预期的值。这里有什么问题?] 我正在使用 python 进行套接字编程以将数据从一个系统发送到另一个系统。
代码看起来像这样。
#include
#include
struct overhead{
uchar8 flags;
uint16 seqNo, timeDiff, threshold, length;
};
struct payload{
float forceX,forceY,forceZ,positionX,positionY,positionZ;
};
struct packet{
overhead fields;
payload data;
};
const char * msg;
int main(){
packet pack;
/* assign values to members of packet
pack.fields.threshold =
pack.data.forceZ = */
msg = (const char *) &pack;
PyObject *PyMain = PyImport_AddModule("__main__");
PyObject *globals = PyModule_GetDict(PyMain);
PyObject *string = PyString_FromString(msg);
PyDict_SetItemString(globals, "send", string);
const char* sendPy = "UDPSock.sendto(send,('10.107.35.167',2000))";
PyRun_SimpleString(sendPy);
PyObject *temp = PyDict_GetItemString(globals, "send");
const char* x = PyString_AsString(temp);
packet *pa = (packet *) x;
cout << pa->data.forceZ << endl;
}
但是输出与分配的值不同。谁能解释什么是错的?
提前致谢。