问题描述
这可能是一个非常基本的问题,但我刚开始使用 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 (将#修改为@)