私は C で Python モジュールを書いていますが、「参照」によって渡された引数の 1 つを使用して Python 関数を呼び出す必要があります。最終的な結果として、Python 関数が引数に対して行ったことが元の C 変数に保存されます。
int *resume; // this int is actually passed in to this body of code
PyObject *resumeInt; // which was originally a C callback func for libnids, but
PyObject *ret; // I removed/rewrote most of this code for clarity
resumeInt = Py_BuildValue("i",-1);
ret = PyObject_CallFunction(tcpResumeFunc, "(O)", resumeInt);
*resume = PyInt_AsLong(resumeInt);
Py_DECREF(ret);
Py_DECREF(resumeInt);
テストするために、tcpResumeFunc が表す Python 関数で、渡された整数を = 5 に変更しました。ただし、このコードの最後に *resume を出力すると、初期値の -1 が保持されます。API の仕組みについて誤解していることはわかっています。助言がありますか?