Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Web-сервис на C++ Builder 6

1.7K
30 июня 2006 года
ilyes
181 / / 22.02.2006
Здравствуйте!

Где-то, когда-то, не помню когда и где, я слышал, что web-сервис можно написать на C++. Вот возникла необходимость написать web-сервис, а я в этом деле нуб. В справке нашел только как запустить сервис и хз зачем написать для него сервер (если не ошибаюсь сервис выполняется на web-сервере, если ошибаюсь поправьте). В нете тоже че-то не нашел статей по этой теме.

Короче дайте ссылку или если не лень напишите как написать web-сервис на С++ Builder (если это вообще возможно)

Спасибо!
1.7K
30 июня 2006 года
ilyes
181 / / 22.02.2006
Вопрос №2. Как вызвать в Buildere веб сервис. Че-то ничерта не понял что в справке написано.
1
30 июня 2006 года
kot_
7.3K / / 20.01.2000
[QUOTE=ilyes]Здравствуйте!

Где-то, когда-то, не помню когда и где, я слышал, что web-сервис можно написать на C++. Вот возникла необходимость написать web-сервис, а я в этом деле нуб. В справке нашел только как запустить сервис и хз зачем написать для него сервер (если не ошибаюсь сервис выполняется на web-сервере, если ошибаюсь поправьте). В нете тоже че-то не нашел статей по этой теме.

Короче дайте ссылку или если не лень напишите как написать web-сервис на С++ Builder (если это вообще возможно)

Спасибо![/QUOTE]
Давай все же с начала определимся - что есть твоя задача? Что ты хочешь получить на выходе?
1.7K
04 июля 2006 года
ilyes
181 / / 22.02.2006
[QUOTE=kot_]Давай все же с начала определимся - что есть твоя задача? Что ты хочешь получить на выходе?[/QUOTE]
Задача : сделать так, чтобы файлы (которые я сейчас передаю сервером на клиент вручную отправляя через WinSock) передавались с помощью вэб сервиса, т.е. на сколько я себе представляю (а представляю я себе это очень смутно) надо с клиента вызвать функцию на веб сервере которая вернет буфер байтов.
Идея не моя, просто мне сказали, что надо так тоже попробовать т.к. большую часть моего кода (всякое распаралеливание и слежение за тем чтобы много народу сразу не качало) на себя возьмет веб сервер (а его все таки делали люди которые в сетевом програмировании имеют побольше опыта чем я). Короче мне сказали что так будет эффективнее и надежнее.
Поетому мне кажется есть две задачи :
1. написать этот сервис ( на С++ просто хотелось попробовать, а вообще я уже написал на .Net)
2. и вызвать его из моей проги написанной на Билдере, просто по справке нифига не догнал как это сделать
1
04 июля 2006 года
kot_
7.3K / / 20.01.2000
[QUOTE=ilyes]Задача : сделать так, чтобы файлы (которые я сейчас передаю сервером на клиент вручную отправляя через WinSock) передавались с помощью вэб сервиса, т.е. на сколько я себе представляю (а представляю я себе это очень смутно) надо с клиента вызвать функцию на веб сервере которая вернет буфер байтов.
Идея не моя, просто мне сказали, что надо так тоже попробовать т.к. большую часть моего кода (всякое распаралеливание и слежение за тем чтобы много народу сразу не качало) на себя возьмет веб сервер (а его все таки делали люди которые в сетевом програмировании имеют побольше опыта чем я). Короче мне сказали что так будет эффективнее и надежнее.
Поетому мне кажется есть две задачи :
1. написать этот сервис ( на С++ просто хотелось попробовать, а вообще я уже написал на .Net)
2. и вызвать его из моей проги написанной на Билдере, просто по справке нифига не догнал как это сделать[/QUOTE]
Мм... В борланде есть ряд компонентов позволяющих реализовать сервис - я честно говоря не использовал их, но если судить по опыту и спользования RDM-модуля (я об этом создавал тему лет так ...полгода назад - я там описывал помоему ряд проблем при разработке сервера ) то далеко не все так просто возможно. Если тема для тебя актуальна - могу выложить материалы из руководства разработчика - но правда их там ок сотни страниц - сканировать некогда, набирать тем более...;)
246
04 июля 2006 года
GIZMO
1.8K / / 30.07.2004
[QUOTE=ilyes]Задача : сделать так, чтобы файлы (которые я сейчас передаю сервером на клиент вручную отправляя через WinSock) передавались с помощью вэб сервиса, т.е. на сколько я себе представляю (а представляю я себе это очень смутно) надо с клиента вызвать функцию на веб сервере которая вернет буфер байтов.
Идея не моя, просто мне сказали, что надо так тоже попробовать т.к. большую часть моего кода (всякое распаралеливание и слежение за тем чтобы много народу сразу не качало) на себя возьмет веб сервер (а его все таки делали люди которые в сетевом програмировании имеют побольше опыта чем я). Короче мне сказали что так будет эффективнее и надежнее.
Поетому мне кажется есть две задачи :
1. написать этот сервис ( на С++ просто хотелось попробовать, а вообще я уже написал на .Net)
2. и вызвать его из моей проги написанной на Билдере, просто по справке нифига не догнал как это сделать[/QUOTE]
File|New|Web Server Application?
1.7K
05 июля 2006 года
ilyes
181 / / 22.02.2006
Цитата:
...сканировать некогда, набирать тем более...


раз некогда то не надо

Цитата:
File|New|Web Server Application


че-то я не нашел такого, это в каком Билдере? у меня 6

1
05 июля 2006 года
kot_
7.3K / / 20.01.2000
[QUOTE=ilyes]раз некогда то не надо

че-то я не нашел такого, это в каком Билдере? у меня 6[/QUOTE]
и в 6 тоже
1.7K
24 октября 2006 года
ilyes
181 / / 22.02.2006
Прошло 4 месяца, тогда я с этим делом так и не разобрался, понял только то, что писать веб-сервис на C++ это гиблое дело.
Но у меня опять возникла необходимость вызвать в С++ веб-сервис написанный на .Net.
Ничерта не понимаю что в справеке написано.
Кто-нибудь вызывал веб-сервисы из С++, объясните пожалуйста как это делать.
Спасибо!
92
24 октября 2006 года
Тень Пса
2.2K / / 19.10.2006
[QUOTE=ilyes]раз некогда то не надо

че-то я не нашел такого, это в каком Билдере? у меня 6[/QUOTE]

File | New | Other ...

вкладка New там элемент Web Server Application

и если мне не изменяет мой склероз, то это CGI будет... ну или что-то вроде... (в общем выбирать можно)
240
24 октября 2006 года
aks
2.5K / / 14.07.2006
Вы знаете разницу между веб сервисом и CGI программой?
А автору вопрос следует задат в раздел веб-программирование - там ему объяснят подробней как веб сервис описать. А уж саму программу которая будет выполнятся можно на чем угодно и на С++ в том числе.
92
24 октября 2006 года
Тень Пса
2.2K / / 19.10.2006
[QUOTE=aks]Вы знаете разницу между веб сервисом и CGI программой?[/QUOTE]

я подсказал где то чего не нашли, а сам не разу не пользовал, и что это будет в итоге мне ровно.
1.7K
24 октября 2006 года
ilyes
181 / / 22.02.2006
Ответы на все мои посты кроме последнего (который вы походу не прочитали) меня больше не интересуют. Да, тогда я еще слабо представлял что такое веб-сервис и как его лучше писать, но за 4 месяца я съел небольшую собачку на веб-программировании, так что веб-сервис уже не проблема, он уже есть, написан на С#.Net протестирован на C#.Net WinForms приложении, вроде работает нормально.

Но теперь мне надо вызвать его из приложения написанного на C++Builder 6, так что с местом расположения своего вопроса я кажется не ошибся.

За ранее благодарен за ответы!
240
24 октября 2006 года
aks
2.5K / / 14.07.2006
Что значит вызывать веб сервис из приложения?
1.7K
26 октября 2006 года
ilyes
181 / / 22.02.2006
Да, я имел в виду веб-метод вызвать!

Люди, ну че никто не шарит в этой теме? Может кто знает как вызвать сервис из Visual C++?
1
26 октября 2006 года
kot_
7.3K / / 20.01.2000
[QUOTE=ilyes]Да, я имел в виду веб-метод вызвать!

Люди, ну че никто не шарит в этой теме? Может кто знает как вызвать сервис из Visual C++?[/QUOTE]
Используй поиск по форуму и читай справку. Тема жевалась и пережевывалась неоднократно. Размещать сообщения типа "Ну что никто не знает..." и пр. - не нужно.
1.7K
27 октября 2006 года
ilyes
181 / / 22.02.2006
[QUOTE=kot_]Используй поиск по форуму и читай справку. Тема жевалась и пережевывалась неоднократно. Размещать сообщения типа "Ну что никто не знает..." и пр. - не нужно.[/QUOTE]
Единственное что смог найти это как это сделать в Visual C++ на MSDN, но когда пытаюсь откомпилить выдает
---------------------------
CallWebService2.exe - Точка входа не найдена
---------------------------
Точка входа в процедуру freeaddrinfo не найдена в библиотеке DLL WS2_32.dll.
---------------------------
OK
---------------------------
А если убрать вызов веб метода, то все нормально. Причем я еще не вызываю функцию в которой веб метод вызывается.

А веток на эту тему я не нашел, где бы "Тема жевалась и пережевывалась неоднократно."
1.7K
27 октября 2006 года
ilyes
181 / / 22.02.2006
Нашел описание такой проблемы на MSDN, посмотрел что они предлагают. Нашел тот файл который надо изменить, а он уже исправленный, а проблема есть. Что делать?
1
01 ноября 2006 года
kot_
7.3K / / 20.01.2000
[QUOTE=ilyes]Единственное что смог найти это как это сделать в Visual C++ на MSDN, но когда пытаюсь откомпилить выдает
---------------------------
CallWebService2.exe - Точка входа не найдена
---------------------------
Точка входа в процедуру freeaddrinfo не найдена в библиотеке DLL WS2_32.dll.
---------------------------
OK
---------------------------
А если убрать вызов веб метода, то все нормально. Причем я еще не вызываю функцию в которой веб метод вызывается.

А веток на эту тему я не нашел, где бы "Тема жевалась и пережевывалась неоднократно."[/QUOTE]
 
Код:
The freeaddrinfo function was added to the Ws2_32.dll on Windows XP and later.
To execute an application using this function on earlier versions of Windows (Windows 2000, Windows NT, and Windows Me/98/95), then you must include the Ws2tcpip.h file and also include the Wspiapi.h file. When the Wspiapi.h include file is added, the freeaddrinfo function is defined to the WspiapiFreeAddrInfo inline function in the Wspiapi.h file.
At runtime, the WspiapiFreeAddrInfo function is implemented in such a way that if the Ws2_32.dll or the Wship6.dll (the file containing freeaddrinfo in the IPv6 Technology Preview for Windows 2000) does not include freeaddrinfo, then a version of freeaddrinfo is implemented inline based on code in the Wspiapi.h header file.
This inline code will be used on older Windows platforms that do not natively support the freeaddrinfo function.
1.7K
02 ноября 2006 года
ilyes
181 / / 22.02.2006
Спасибо за ответ!
Но для меня написать вызов веб-сервиса на Visual C++ это как крайний вариант. Т.к. программа которая должна вызывать веб-метод уже написана на С++ Билдере.

Ну вобщем у меня получилось заставить Билдер сгенерировать какой-то класс который походу должен вызывать мой сервис. Но вот опять такая стремная проблема возникла. Веб-методы без параметров вызываются и возвращают значения как надо, но веб-методы с параметрами вызывают ошибку, т.к. почему-то в эти методы не приходят входные параметры.
т.е. вызываю Hello("_kot") и должет вернуть "Hello, _kot!", возвращает "Hello, !"
вызывал так
 
Код:
_di_ServiceSoap sfd = GetServiceSoap(false,"");
ShowMessage(sfd->Hello("lol"));

2_kot удели пожалуйста мне еще немного своего драгоценного времени и ответь как бороться с этой напастью, буду тебе бескрайне благодарен ))) как и любому другому ответившему на мой вопрос
Спасибо!

Вот еще прикрепил класс который мне Билдер сделал, но врядли в нем ошибка
1
02 ноября 2006 года
kot_
7.3K / / 20.01.2000
[QUOTE=ilyes]Спасибо за ответ!
Но для меня написать вызов веб-сервиса на Visual C++ это как крайний вариант. Т.к. программа которая должна вызывать веб-метод уже написана на С++ Билдере.

Ну вобщем у меня получилось заставить Билдер сгенерировать какой-то класс который походу должен вызывать мой сервис. Но вот опять такая стремная проблема возникла. Веб-методы без параметров вызываются и возвращают значения как надо, но веб-методы с параметрами вызывают ошибку, т.к. почему-то в эти методы не приходят входные параметры.
т.е. вызываю Hello("_kot") и должет вернуть "Hello, _kot!", возвращает "Hello, !"
вызывал так
 
Код:
_di_ServiceSoap sfd = GetServiceSoap(false,"");
ShowMessage(sfd->Hello("lol"));

2_kot удели пожалуйста мне еще немного своего драгоценного времени и ответь как бороться с этой напастью, буду тебе бескрайне благодарен ))) как и любому другому ответившему на мой вопрос
Спасибо!

Вот еще прикрепил класс который мне Билдер сделал, но врядли в нем ошибка[/QUOTE]
Со временем тяжело.
например в моем сервисе методы были определены так:
 
Код:
STDMETHOD(AS_Login(BSTR login,long pointid,BSTR pass));
  STDMETHOD(LoginOutE(long SID));
  STDMETHOD(GetMessageEm(long id));
  STDMETHOD(get_Query_Select(IAppServer** Value));
  STDMETHOD(set_Query_Select(IAppServer* Value));

Реализован например
 
Код:
STDMETHODIMP TnOTCRemouteModuleImpl::AS_Login(BSTR login,long pointid,BSTR pass)
{
  fmMain->Login(this,login,pointid,pass);
  return S_OK;
}

Вроде проблем не было.
1.7K
03 ноября 2006 года
ilyes
181 / / 22.02.2006
Подключил эти хедеры к своей программе на Visual C++, попытался скомпилировать а он все равно эту точку входа найти не может, блин что делать?
Я вставил эти хедеры в начало класса для вызова сервиса который мне Visual Studio сгенерировала. Может не туда надо вставлять?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог