我有一个令人沮丧的问题,让我花了很多时间处理它,但我找不到任何解决方案。
我想在PHP中使用带有SWIG的C ++类。我生成了我的共享对象,它适用于某些方法,但每当我使用字符串参数作为输入调用方法时,我都会遇到此错误:
致命错误:在
PKI_Buf_initHex
的参数2中输入错误。预计SWIGTYPE_p_std__string
PKI_Buf_initHex
是SWIG自动生成的包装类的名称。在我的C ++代码中,我将initHex
方法声明为:
int initHex(const string x)
{..}
我在我的界面文件中添加了typemaps.i
和std_string.i
,但我收到了相同的错误消息。
如果有人能帮我解决这个问题,我真的很感激。
答案 0 :(得分:18)
你需要:
%include <std_string.i>
在SWIG界面中足够早(即在std::string
首次出现之前)。