boost python的资源句柄

时间:2014-05-09 10:06:48

标签: python c++ boost

使用boost :: python从c ++调用python代码。

int main()
{

namespace bp = boost::python;

Py_Initialize();
bp::object main_module = bp::import("__main__");
bp::import("ldap");
bp::import("ldif");
bp::object main_namespace = main_module.attr("__dict__");

bp::exec("import ldap,ldif\n"
         "l = ldap.initialize('ldaps://RIO-PC')\n",
         main_namespace);

//get the ldap object from the main_namespace
boost::python::object ldap = boost::python::extract<boost::python::object>(main_namespace["l"]);

//...do something...
}

现在我想获得一个大脑新的ldap对象,我可以这样做吗?

bp::object main_module_2 = bp::import("__main__");
bp::import("ldap");
bp::import("ldif");
bp::object main_namespace_2 = main_module_2.attr("__dict__");

bp::exec("import ldap,ldif\n"
         "l = ldap.initialize('ldaps://RIO-PC')\n",
         main_namespace);

//get the ldap object from the main_namespace
boost::python::object ldap_2 = boost::python::extract<boost::python::object>(main_namespace_2["l"]);

如果这不安全,我该怎么办?如果这是安全的,我还有其他选择吗?

环境: 提升版:1_55_0 编译器:vc2008 os:win7 64bits

0 个答案:

没有答案