从Windows中的C++应用程序进行Thrift调用
Making Thrift calls from a C++ app in Windows
正如标题所说,我有一个用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。但这是一个杂烩,我不会出于原则这么做。
除此之外,我没有其他建议,对不起。祝你好运。
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- 为什么使用 "this" 指针调用派生成员函数?
- 函数调用中参数的顺序重要吗
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 在c++类上调用void函数
- 为什么 std::unique 不调用 std::sort?
- 调用专用模板时出错"no matching function for call to [...]"
- 选择要调用的构造函数
- C++为什么尽管我调用了void函数,它却不起作用
- 构造函数正在调用一个使用当前类类型的函数
- 变量没有改变?通过向量的函数调用
- 没有为自己的结构调用列表推回方法
- 调用'begin(int [n])'没有匹配函数
- 什么时候调用析构函数
- 如何用参数值调用函数(仅在运行时已知)
- 诸如Corba(如TAO)、Thrift、D-Bus、ICE等框架的进程内调用性能
- 从Windows中的C++应用程序进行Thrift调用