Swig,Python,C ++:TypeError:在'Geodatabase_Open'方法中,类型为'std :: string'的参数2

时间:2011-05-22 21:42:08

标签: c++ python swig

我是C ++和SWIG的新手。这是我的第一个项目。

我能够使用distutils成功构建我的Python扩展。但是,当我尝试我的对象时,我不断收到此错误。

似乎从获取python字符串并将其转换为std :: string存在转换问题。

我正在使用Visual Studio C ++ 2008 Express

在Windows 7上工作

这是我的swig界面文件

/* swig interface file */
%module Geodatabase 
%{
#include Geodatabase_helper.h
%}
namespace FileGeodatabase {
  class Geodatabase {
    public:
  Geodatabase();
  Geodatabase(std::string p);
  ~Geodatabase();
  void Open(std::string p);
  void Close();
   };
}

1 个答案:

答案 0 :(得分:4)

根据swig documentation,使用std::string需要%include "std_string.i"

%module example
%include "std_string.i"

std::string foo();
void        bar(const std::string &x);
相关问题