微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Cap'n Proto RPC:返回一个字符串

如何解决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 举报,一经查实,本站将立刻删除。