如何解决Cap'n Proto RPC:返回一个字符串
这可能是一个非常基本的问题,但我刚开始使用 Cap'n Proto 的 RPC 框架,无法弄清楚如何从函数返回字符串 - 在读取另一侧的值时我只会得到 gargabe。
我所做的是定义类似的东西
getString @0 () -> (string: Text);
在我的 .capnp 文件中。然后在我做的服务器上:
kj::Promise<void> getString(GetStringContext context) override {
context.getResults().setString("Pink Floyd");
return kj::READY_Now;
}
这是我的客户端调用:
auto request = myobj.getStringRequest();
auto response = request.send().wait(waitScope).getString();
std::cout << "Response: " << response.cstr();
// output: "Response: ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦"
但是我得到的输出正如我所说的只是垃圾。我确定我在这里遗漏了一些非常基本的东西,但我找不到完成此操作的示例。计算器示例工作正常,但没有返回字符串,只有基本类型或其他功能,这也适用于我的代码。
我正在使用 Git 中的 Cap'n Proto,使用 MSVC 2019 编译并链接到以 C++20 模式编译的项目。
编辑:
我在 Linux(使用 WSL)中测试了代码并确认它按预期工作,所以这是 Windows 实现中的错误,而不是如何使用库的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。