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;
}
しかし、出力は割り当てられた値と同じではありません。誰が何が間違っているのか説明できますか?
前もって感謝します。