正如标题所说,我有一个用 C++ 编写的 Windows 应用程序,我需要从中调用远程 Thrift 服务,老实说,我对这个主题有点迷茫。http://wiki.apache.org/thrift/ThriftInstallationWin32声明“Thrift C++ 运行时库目前不能在 Windows 上运行”。这是否意味着我运气不好,还是有解决方法?
3 回答
我为自己的应用程序将 Thrift 移植到 Windows/C++。它是开源的,因此其他人可以免费使用它: http: //peoplesnote.codeplex.com/SourceControl/list/changesets
它可能不是一个优雅的解决方案,但至少它应该可以工作:
根据 Thrift Wiki,有 C# 绑定,但它们确实应该称为 .NET 绑定:它们没有特定于 C# 的内容。因此,您可以在 C++/CLI dll 库中实现您的通信库,并从非托管代码中引用该 .dll。
该页面看起来相当简单。他们告诉你如何制作 Thrift 编译器,但毫不含糊地声明,它的元代码不会在 Windows 下编译。
因此,如果没有让某人弄清楚如何在 Windows 下编译它,那么您就不走运了。
老实说,我看不出这有什么大不了的,特别是因为 Cygwin 很好地提供了在 Windows 下编译 UNIX 源代码所需的一切。我只能建议他们必须使用一些相当深奥的 UNIX 功能。
可以从这里采取多种方法:
1/ 既然已经进入Apache Incubator,可能有支持Windows的计划(虽然我没找到)。如果它是真正的开源并且确定了需求,那么很可能有人会开始将运行时移植到 Windows。您可能无法等待。
2/ 为什么世界需要另一种RPC 机制,这超出了我的理解。但是您可以使用一种已经存在的 RPC 机制(SUN/ONC)或您自己的 RPC 协议从您的 Windows 机器通信到 UNIX 机器,然后通过 Thrift 转发 RPC。但这是一个杂牌,我不会出于原则而这样做。
除此之外,我没有太多建议,对不起。祝你好运。