4

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

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

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

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

int initHex(const string x) 
{..}

我在我的接口文件中包含typemaps.istd_string.i,但我得到了相同的错误消息。

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

4

1 回答 1

18

你需要有:

%include <std_string.i>

在 SWIG 界面中足够早(即std::string第一次看到之前)。

于 2012-09-14T14:38:17.000 回答