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 (将#修改为@)