swig + golang可以处理一个std :: string out param吗?

时间:2016-11-16 20:50:08

标签: c++ go swig

我尝试使用SWIG将go项目连接到C ++ lib。我已经完成了大部分工作,但是有一个函数将C ++ std :: string作为参数并为其赋值,而我却无法使其工作。

我在网上找到的最接近的问题是:String parameters

它不一样,因为它需要const std::string &,而SWIG会将其转换为go字符串。

我的功能类似于:

bool foo(std::string &result);

SWIG将此转换为func Foo(result *string) boolean

这会编译和构建,但是如果我传入一个指向go字符串的指针,它会发生恐慌。

var result string
Foo(&result)

我已经能够使foo()返回一个std :: string,SWIG似乎可以使用go字符串就可以了。但是,在这种情况下我失去了返回值。

我正在使用golang 1.7,swig 3.0.10

0 个答案:

没有答案