इम सी कोड से अजगर कार्यों कॉल करने के लिए कोशिश कर रहा है, और मैं से hereembedding अजगर
एक नमूना मैं भी सही फ़ाइल directries, पुस्तकालय directries शामिल है पीछा किया, और python32.lib जुड़े हुए (आईएम अजगर 32 का प्रयोग करके) लेकिन त्रुटि है कि इस तरह के PyString_FromString, PyInt_FromLong, PyInt_AsLong के रूप में अजगर/सी एपीआई अपरिभाषित कर रहे हैं (डिबगर में त्रुटि)
यह अजीब है क्योंकि im भी अन्य APIs का उपयोग है, लेकिन वे सब ठीक हो ... था
यहां समस्या क्या है ??
int
main(int argc, char *argv[])
{
PyObject *pName, *pModule, *pDict, *pFunc;
PyObject *pArgs, *pValue;
int i;
if (argc < 3) {
fprintf(stderr,"Usage: call pythonfile funcname [args]\n");
return 1;
}
Py_Initialize();
pName = PyString_FromString(argv[1]);
/* Error checking of pName left out */
pModule = PyImport_Import(pName);
Py_DECREF(pName);
if (pModule != NULL) {
pDict = PyModule_GetDict(pModule);
/* pDict is a borrowed reference */
Py_Initialize(), PyImport_Import(), PyModule_GetDict() सब ठीक काम करते हैं, लेकिन PyString_FromString नहीं ...
मैं वास्तव में लगता है कि समारोह PyString_FromString अजगर 3.x. में PyBytes_FromString को नाम दिया गया था:
वैसे, मैं आमतौर पर हर संभव कॉल को देखने के लिए इस पृष्ठ का उपयोग – Tarantula