3

簡単な HelloWorld クラスを作成しました。ブーストpythonラッパーを作成し、コードをDLLとしてデバッグします。私の質問は、このコードをpythonで公開し、挨拶機能を使用する方法です。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

少なくとも私のシステムでは、Python にインポートする前に、ライブラリ ファイルの名前を ExpsoingClasses.dll から ExpsoingClasses.pyd に変更する必要がありました。それをしたら、これはうまくいくはずです:

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