Как говорится в названии, у меня есть приложение для Windows, написанное на C++, из которого мне нужно звонить в удаленные службы Thrift, и, честно говоря, я немного запутался в этом вопросе. http://wiki.apache.org/thrift/ThriftInstallationWin32 заявляет, что «Библиотека времени выполнения Thrift C++ в настоящее время не работает в Windows». Означает ли это, что мне не повезло, или есть обходной путь?
@korona SO - это вики. Если вам неудобно, когда другие люди редактируют ваши вопросы, не используйте этот сайт.
Поверьте, меня полностью устраивает, что это вики, в этом вся прелесть сайта. Не принижай меня. Я против того, чтобы люди навязывали свою мораль другим. Не стесняйтесь редактировать факты или пояснять непонятные вещи, но исключите Иисуса из этого.
@korona ... Какое отношение имеет Иисус к упомянутому что-нибудь? Редактирование сообщения для поддержания уровня профессионализм, ожидаемого и требуемого от пользователей Stack Overflow, не имеет ничего общего с навязыванием морали. Здесь нет места для споров, Джефф сказал.
Использование красочного языка в устоявшейся форме выражения считается непрофессиональным - ваша вселенная? Вы там нанимаете только роботов и киборгов?
@korona: Удалось ли вам использовать его в Windows? Более поздние версии требуют ускорения, но по-прежнему используют специфичные для платформы вещи, такие как pthread, которые существуют как переносимые альтернативы ускорению, такие как Boost.Thread.
@dalle: Боже, это было давным-давно. Я не думаю, что мы в конечном итоге использовали Thrift для этого из-за проблем с доступностью в Windows. Извиняюсь.
@korona: Могу я спросить, что вы использовали вместо этого? В настоящее время я нахожусь в аналогичной ситуации, и я не хочу использовать Thrift из-за этой непереносимости.
Извините, но я не уверен, что мы в итоге сделали, но я думаю, что это был протокол SOAP. Я думаю, что для C++ есть достойная поддержка библиотеки SOAP.





Возможно, это не изящное решение, но, по крайней мере, оно должно работать:
Согласно Thrift Wiki, существуют привязки C#, но их действительно следует называть привязками .NET: в них нет ничего специфичного для C#. Таким образом, вы можете реализовать свою коммуникационную библиотеку в dll-библиотеке C++ / CLI и ссылаться на эту .dll из своего неуправляемого кода.
Эта страница кажется довольно простой. Они говорят вам, как создать компилятор Thrift, но недвусмысленно заявляют, что его метакод не будет компилироваться под Windows.
Так что, если не заставить кого-то выяснить, как его скомпилировать под Windows, вам, являются, не повезло.
Честно говоря, я не понимаю, насколько это будет такой большой проблемой, тем более, что Cygwin довольно хорошо предоставляет все необходимое для компиляции исходных текстов UNIX под Windows. Я могу только предположить, что они должны использовать некоторые довольно эзотерические функции UNIX.
Здесь есть несколько подходов:
1 / Поскольку он вошел в инкубатор Apache, могут быть планы по поддержке Windows (хотя я не могу ее найти). Если это действительно открытый исходный код и будет выявлена потребность, вероятно, кто-то начнет переносить среды выполнения на Windows. Возможно, ты не сможешь ждать.
2 / Зачем миру нужен механизм Другая RPC, мне непонятно. Но вы можете использовать один из уже существующих механизмов RPC (SUN / ONC) или свой собственный протокол RPC для связи из вашего окна Windows с устройством UNIX, которое затем пересылает RPC через Thrift. Но это кладж, и я бы не стал этого делать из принципа.
Кроме этого, я ничего не могу предложить, извините. Удачи.
Я портировал Thrift на Windows / C++ для своего собственного приложения. Его открытый исходный код, поэтому другие люди могут использовать его: http://peoplesnote.codeplex.com/SourceControl/list/changesets
Кто-то отредактировал это из-за «возможной ненормативной лексики». Оставьте, пожалуйста, мой выбор языка в покое.