从Windows中的C++应用程序进行Thrift调用

Making Thrift calls from a C++ app in Windows

本文关键字:Thrift 调用 应用程序 Windows 中的 C++      更新时间:2023-10-16

正如标题所说,我有一个用C++编写的Windows应用程序,我需要从中调用远程Thrift服务,老实说,我对这个主题有点迷失。http://wiki.apache.org/thrift/ThriftInstallationWin32声明"Thrift C++运行库当前无法在Windows上运行"。这是不是意味着我运气不好,还是有变通办法?

我为自己的应用程序将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孵化器,可能有支持Windows的计划(尽管我找不到任何计划)。如果它真的是开源的,并且确定了需求,很可能有人会开始将运行时移植到Windows。你可能等不及了。

2/我无法理解为什么世界需要另一个RPC机制。但您可以使用现有的RPC机制之一(SUN/ONC)或您自己的RPC协议从Windows框通信到UNIX框,然后通过Thrift转发RPC。但这是一个杂烩,我不会出于原则这么做。

除此之外,我没有其他建议,对不起。祝你好运。