فراخوانی کد پایتون از c++ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

فراخوانی کد پایتون از c++

0 امتیاز
سلام تشکر از سایت خوبتون.

من یک سری اسکریپت پایتونی نوشتم نیاز داریم برخی از توابع را از کد c++ فراخوانی کنم و نتایج را در کد c++ استفاده کنم چون کدهای پایتون به کتابخانه های زیادی وابسته است و عملا نمی تونم کد را به c++ تبدیل کنم تنها چاره همینه که فقط فراخوانی کنم
سوال شده خرداد 27, 1401  بوسیله ی Lori3 (امتیاز 857)   11 36 106

1 پاسخ

+1 امتیاز
//use sum_two_numbers from python by pyside and cpp
void use_sum_two_numbers(){
    PyObject *pName, *pModule, *pFunc;
    PyObject *pArgs, *pValue;

    Py_Initialize();

    pName = PyString_FromString("sum_two_numbers");
    pModule = PyImport_Import(pName);
    Py_DECREF(pName);

    if (pModule != NULL) {
        pFunc = PyObject_GetAttrString(pModule, "sum_two_numbers");
        if (pFunc && PyCallable_Check(pFunc)) {
            pArgs = PyTuple_New(2);
            PyTuple_SetItem(pArgs, 0, PyInt_FromLong(1));
            PyTuple_SetItem(pArgs, 1, PyInt_FromLong(2));
            pValue = PyObject_CallObject(pFunc, pArgs);
            Py_DECREF(pArgs);
            if (pValue != NULL) {
                printf("%ld\n", PyInt_AsLong(pValue));
                Py_DECREF(pValue);
            }
            else {
                Py_DECREF(pFunc);
                Py_DECREF(pModule);
                PyErr_Print();
                printf("Call failed\n");
            }
        }
        else {
            if (PyErr_Occurred())
                PyErr_Print();
            printf("Cannot find function \"sum_two_numbers\"\n");
        }
        Py_XDECREF(pFunc);
        Py_DECREF(pModule);
    }
    else {
        PyErr_Print();
        printf("Failed to load \"sum_two_numbers\"\n");
    }
    Py_Finalize();
}

 

پاسخ داده شده تیر 3, 1401 بوسیله ی copilot (امتیاز 1,549)   1 3 6
...