Выполнение вызовов Thrift из приложения C ++ в Windows - PullRequest
7 голосов
/ 30 октября 2008

Как видно из названия, у меня есть приложение для Windows, написанное на C ++, из которого мне нужно совершать звонки в удаленные сервисы Thrift, и, честно говоря, я немного растерялся в этом вопросе. http://wiki.apache.org/thrift/ThriftInstallationWin32 утверждает, что «библиотека времени выполнения Thrift C ++ в настоящее время не работает в Windows». Значит ли это, что мне дерьмо не повезло, или есть обходной путь?

Ответы [ 3 ]

5 голосов
/ 18 сентября 2010

Я портировал Thrift на Windows / C ++ для своего собственного приложения. Он с открытым исходным кодом, так что другие люди могут свободно использовать его: http://peoplesnote.codeplex.com/SourceControl/list/changesets

3 голосов
/ 06 февраля 2009

Возможно, это не элегантное решение, но, по крайней мере, оно должно работать:

Согласно Thrift Wiki, есть C # -привязки, но они действительно должны называться .NET-привязками: в них нет ничего специфичного для C #. Таким образом, вы можете реализовать свою коммуникационную библиотеку в dll-библиотеке C ++ / CLI и ссылаться на эту .dll из неуправляемого кода.

1 голос
/ 06 февраля 2009

Эта страница кажется довольно простой. Они рассказывают, как создать Thrift-компилятор, но недвусмысленно утверждают, что метакод из него не будет компилироваться под Windows.

Итак, если не считать, что кто-то разбирается, как его скомпилировать под Windows, вам не повезло.

Честно говоря, я не понимаю, как это может быть настолько важно, тем более что Cygwin довольно хорошо предоставляет все необходимое для компиляции исходников UNIX под Windows. Я могу только предположить, что они должны использовать некоторые довольно эзотерические функции UNIX.

Здесь есть несколько подходов:

1 / Поскольку он введен в инкубатор Apache, возможно, существуют планы по поддержке Windows (хотя я не могу его найти). Если это действительно открытый исходный код и необходимость выявлена, вероятно, кто-то начнет портировать среды выполнения на Windows. Возможно, вы не сможете ждать.

2 / Зачем миру нужен другой механизм RPC - мне не под силу. Но вы могли бы использовать один из уже существующих механизмов RPC (SUN / ONC) или свой собственный протокол RPC для связи с вашего окна Windows на ящик UNIX, который затем передает RPC через Thrift. Но это клудж, и я бы не стал делать это из принципа.

Кроме этого, больше ничего не могу предложить, извините. Желаем удачи.

...