Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C+中嵌入python+;:分配C++;和python变量 我正在编写一个小程序(下面的一个),它将Python嵌入到C++代码中。 #include <Python.h> int main() { int x; Py_Initialize(); const char* pythonScript = "print 'Start'" PyRun_SimpleString(pythonScript); /* assign a python variable 'n' to 'x' i.e n=x */ Py_Finalize(); return 0; } #包括 int main() { int x; Py_初始化(); const char*pythonScript=“打印‘开始’” PyRun_SimpleString(pythonScript); /* 将python变量“n”分配给“x”,即n=x */ Py_Finalize(); 返回0; } 我的要求是,我将Python变量赋值为C++变量x的值。 有办法做到这一点吗_Python_Embedding - Fatal编程技术网

在C+中嵌入python+;:分配C++;和python变量 我正在编写一个小程序(下面的一个),它将Python嵌入到C++代码中。 #include <Python.h> int main() { int x; Py_Initialize(); const char* pythonScript = "print 'Start'" PyRun_SimpleString(pythonScript); /* assign a python variable 'n' to 'x' i.e n=x */ Py_Finalize(); return 0; } #包括 int main() { int x; Py_初始化(); const char*pythonScript=“打印‘开始’” PyRun_SimpleString(pythonScript); /* 将python变量“n”分配给“x”,即n=x */ Py_Finalize(); 返回0; } 我的要求是,我将Python变量赋值为C++变量x的值。 有办法做到这一点吗

在C+中嵌入python+;:分配C++;和python变量 我正在编写一个小程序(下面的一个),它将Python嵌入到C++代码中。 #include <Python.h> int main() { int x; Py_Initialize(); const char* pythonScript = "print 'Start'" PyRun_SimpleString(pythonScript); /* assign a python variable 'n' to 'x' i.e n=x */ Py_Finalize(); return 0; } #包括 int main() { int x; Py_初始化(); const char*pythonScript=“打印‘开始’” PyRun_SimpleString(pythonScript); /* 将python变量“n”分配给“x”,即n=x */ Py_Finalize(); 返回0; } 我的要求是,我将Python变量赋值为C++变量x的值。 有办法做到这一点吗,python,embedding,Python,Embedding,提前感谢。以下片段应该可以工作(未经测试): PyObject*main=PyImport\u AddModule(“\uu main”;//借来 if(main==NULL) 错误(); PyObject*globals=PyModule_GetDict(main);//借来 PyObject*value=PyInt_FromLong(x); 如果(值==NULL) 错误(); if(PyDict_SetItemString(全局,“n”,值)

提前感谢。

以下片段应该可以工作(未经测试):

PyObject*main=PyImport\u AddModule(“\uu main”;//借来
if(main==NULL)
错误();
PyObject*globals=PyModule_GetDict(main);//借来
PyObject*value=PyInt_FromLong(x);
如果(值==NULL)
错误();
if(PyDict_SetItemString(全局,“n”,值)<0)
错误();
Py_DECREF(值);
看看:您还可以看看boost::python,这使它变得非常简单。。。
PyObject *main = PyImport_AddModule("__main__"); // borrowed
if (main == NULL)
    error();
PyObject *globals = PyModule_GetDict(main); // borrowed
PyObject *value = PyInt_FromLong(x);
if (value == NULL)
   error();
if (PyDict_SetItemString(globals, "n", value) < 0)
   error();
Py_DECREF(value);