我尝试使用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