3

我写了简单的 HelloWorld 类。并编写一个 boost python 包装器。并将代码调试为 DLL。我的问题是如何在 python 中公开这段代码并使用 greet 函数。我尝试通过在 sys.path.insert 中给出路径。但无法获得问候功能。我的代码如下。感谢帮助。

#include<boost/python.hpp>

using namespace std;
using namespace boost::python;
class World
{
 public:
 string msg;
 void set(string msg)
{
    this->msg=msg;
}

 string greet()
 {
   return msg;
 }

};

BOOST_PYTHON_MODULE(ExpsoingClasses)
{
class_<World>("World")
    .def("greet", &World::greet)
    .def("set", &World::set)

    ;
}
4

1 回答 1

3

至少在我的系统上,我必须将库文件从 ExpsoingClasses.dll 重命名为 ExpsoingClasses.pyd,然后才能在 Python 中导入它。一旦你这样做,这应该工作:

import ExpsoingClasses
retVal = ExpsoingClasses.World()
retVal.set('hello world')
print retVal.greet()
于 2013-09-06T14:33:45.420 回答