![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Всем доброго времени суток! Есть WebService работающий на C#.. Подскажите пожалуйста, как мне использовать его через C++ :
|
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Покопал немного под это дело... Это нужно через протокол SOAP с ним общаца... Кто-нибудь знает есть ли какиенить стандартные средства в си для взаимодействия с SOAP?? не в ручную же xml составлять....
|
|||
|
||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
||||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Vyacheslav, можете примерчик скинуть простейшего обращения к сервису, вызова метода и получения от него ответа с использованием gsoap?
|
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Нашёл в инете несколько способов работы с Soap через C++.. Выбрал способ через библиотеку MSSOAP1.dll . Столкнулся с проблемой передачи функции параметра.
Функция специально была создана для тестов на сервисе написанном на C#. Принимает строку типа string и возвращает строку типа string. Но в данном случае она вообще не возвращает объект element... Пробовал с аналогичной функцией, но принимающей параметр типа long. С ней этот код работает... Тоесть получается что не работает только с функцией принимающей String... Помогите пожалуйста кто реализовывал чтонить подобное... Как передать через SOAP веб сервису в функцию параметр типа String ??? |
|||
|
||||
Lycifer |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 144 Регистрация: 4.11.2007 Репутация: нет Всего: нет |
Если у тебя window то поможе ком объект(я не помню как класс называется, он умеет загружать збокри DotNet вот только не строгая сигнатура...)
Если ты романтик + к этому хочеш добится великой совместности сокеты помогут , но вот только "секса будет много " - что бы подержать самому Web Service. Есть еще вариант что вызывай через C# а управление передовай в С++ (.Net call native code). Самый легкий способ это использовать С++ Manager(но примоложение больше по размерам и какое то не то, в отличии от C#, хотя считается лучше поддержка С++ unmanager, кажется Manager был зделан для этого) Это все, пиши есчё))))))))))))) |
|||
|
||||
Brodyaga |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Покопал глубже и понял что косяк в том, что параметры в методы вызывемые на веб сервисе вообще не передаюца!!!
Использую тот же код, параметр в нём передаёца вот здесь... :
Вот код метода который принимает параметр на веб сервисе:
вообщем a = null, хотя параметр то я передаю!! И имя у него такое же указываю, тобишь "a"... Если сделать функцию принимающую параметры типа int, то будет тоже самое, принимаемое значение будет равно 0. Тоесть чтобы я ни передавал, в функцию на сервис параметры не доходят... Подскажите в чём дело кто знает, плиз?? :( Это сообщение отредактировал(а) Brodyaga - 14.11.2008, 11:23 |
||||
|
|||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Прочитал.. но не нашёл где там сказано про использование MSSOAP1.dll.. Меня интересует почему проблема в коде, который приводят в различных примерах как работающий, а на деле он не работает...
|
|||
|
||||
Brodyaga |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Вообщем так... сделал обращение к веб-сервису своему, через Builder. Та же проблема....
Нашёл одну ооочень интересную ссылочку... Там у человека та же проблема, но при работе с веб-сервисом через Delphi... Там проблема решилась добалением строчки:
Добавил в проекте билдеровском аналогичную строку:
И всё заработало... Прочитал гдето, что эта строчка, переключает использование по умолчанию rpc на soap... Что то типа того... Но мне надо всё это провернуть на MSVC 2005... Как мне сделать аналогичную вещь в студии? Привожу на всякий случай запрос от билдера после добавления заветной строчки ![]()
Неужели никто не сталкивался с такой проблемой?! не верю! ![]() форуме одном нашёл сообщения с такой же проблемой от 2006 г., правда там тоже никто не ответил... ;) Подскажите плиз как всётаки с библиотекой MSSOAP1.dll совладать... Кстати... Нашёл ещё одну библиотечку... вот ссылка Но она тоже не работает, тут уж совсем.. даже объект почемуто по CreateInstance не создаётся, тоесть вот здесь уже косяк:
pSoapClient остаётся равным null... вот кстати ссылка на пример, который за основу взял я... и в котором соответственно нужно что-то поправить аналогичное исправленному в билдере... Ну что форумчане... жду ваших высказываний и помощи... Это сообщение отредактировал(а) Brodyaga - 17.11.2008, 11:50 |
||||||||
|
|||||||||
jonie |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||
|
|||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
зарегина имеется ввиду утилитой regsrv ? |
|||
|
||||
Vyacheslav |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Поздно, наверное, но отвечу. Вы по всей видимости даже не смотрели, потому как там все просто. А сам примерчик ничего Вам не даст., потому как там есть утилита которая на основе wsdl генерит код прохи
использование
-------------------- С уважением, Вячеслав Ермолаев |
||||||
|
|||||||
Brodyaga |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Да, действително... зарегал, видать выдало какуюто ошибку, а я посчитал что всё ок... библиотека действительно не была зарегана. Сейчас зарегал по новой... теперь класс не правильно инициализируется. Вот тут функция InitService возвращает 0 :
В чём сейчас проблема? кто знает? |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |