Выполнение вызовов Thrift из приложения C++ в Windows

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

Кто-то отредактировал это из-за «возможной ненормативной лексики». Оставьте, пожалуйста, мой выбор языка в покое.

korona 14.04.2010 15:15

@korona SO - это вики. Если вам неудобно, когда другие люди редактируют ваши вопросы, не используйте этот сайт.

meagar 16.11.2010 20:39

Поверьте, меня полностью устраивает, что это вики, в этом вся прелесть сайта. Не принижай меня. Я против того, чтобы люди навязывали свою мораль другим. Не стесняйтесь редактировать факты или пояснять непонятные вещи, но исключите Иисуса из этого.

korona 25.11.2010 18:06

@korona ... Какое отношение имеет Иисус к упомянутому что-нибудь? Редактирование сообщения для поддержания уровня профессионализм, ожидаемого и требуемого от пользователей Stack Overflow, не имеет ничего общего с навязыванием морали. Здесь нет места для споров, Джефф сказал.

meagar 25.11.2010 23:15

Использование красочного языка в устоявшейся форме выражения считается непрофессиональным - ваша вселенная? Вы там нанимаете только роботов и киборгов?

korona 15.03.2011 20:25

@korona: Удалось ли вам использовать его в Windows? Более поздние версии требуют ускорения, но по-прежнему используют специфичные для платформы вещи, такие как pthread, которые существуют как переносимые альтернативы ускорению, такие как Boost.Thread.

dalle 19.03.2011 13:04

@dalle: Боже, это было давным-давно. Я не думаю, что мы в конечном итоге использовали Thrift для этого из-за проблем с доступностью в Windows. Извиняюсь.

korona 22.03.2011 13:27

@korona: Могу я спросить, что вы использовали вместо этого? В настоящее время я нахожусь в аналогичной ситуации, и я не хочу использовать Thrift из-за этой непереносимости.

dalle 22.03.2011 20:36

Извините, но я не уверен, что мы в итоге сделали, но я думаю, что это был протокол SOAP. Я думаю, что для C++ есть достойная поддержка библиотеки SOAP.

korona 04.04.2011 20:19
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
7
9
4 135
3

Ответы 3

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

Согласно 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

Другие вопросы по теме