SWIG无法识别字符串参数

时间:2012-09-02 12:58:56

标签: c++ string swig

我有一个令人沮丧的问题,让我花了很多时间处理它,但我找不到任何解决方案。

我想在PHP中使用带有SWIG的C ++类。我生成了我的共享对象,它适用于某些方法,但每当我使用字符串参数作为输入调用方法时,我都会遇到此错误:

  

致命错误:在PKI_Buf_initHex的参数2中输入错误。预计SWIGTYPE_p_std__string

PKI_Buf_initHex是SWIG自动生成的包装类的名称。在我的C ++代码中,我将initHex方法声明为:

int initHex(const string x) 
{..}

我在我的界面文件中添加了typemaps.istd_string.i,但我收到了相同的错误消息。

如果有人能帮我解决这个问题,我真的很感激。

1 个答案:

答案 0 :(得分:18)

你需要:

%include <std_string.i>

在SWIG界面中足够早(即在std::string首次出现之前)。