Swig:将返回类型 std::string 转换为 java byte[]
我有一个返回 std::string 的 C++ 方法。我正在使用 SWIG,我想向 SWIG 添加逻辑,以使返回的 std::string 在 Java 中作为 byte[] 接收。
如果这是可能的,我该怎么做?
谢谢
I have a C++ method that returns a std::string. I am using SWIG and I want to add logic to SWIG to make the std::string that is returned, be received in Java as a byte[].
If this is possible, how can I do this?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
SWIG 附带了许多 C++ 结构的预先编写的接口文件。在 SWIG 的 Lib 目录中可以找到许多语言的文件,包括 Java。
在您的 SWIG 接口文件中添加
%include
。检查 SWIG 的 Lib/Java 目录以获取对其他构造的支持。SWIG comes with pre-written interface files for many C++ constructs. The are found in SWIG's Lib directory for many languages, including Java.
Add
%include <std_string.i>
in your SWIG interface file. Check SWIG's Lib/Java directory for support for other constructs as well.std::string 有一个成员函数 c_str 基本上就是这样做的。编写一个包装函数来调用您的函数并返回相应的 C 字符串可能是有意义的。
std::string has a member function c_str that does essentially that. It would probably make sense to write a wrapper function that calls your function and returns the corresponding c string.