2013-08-20 5 views
3

У меня есть служба WCF. Мне нужно вызвать его из C++.Как вызвать службу WCF из C++

Решение может использовать C# dll для вызова WCF и вызова его из кода на C++. Или C++ dll, напрямую вызывающая удаленный сервис WCF.

EDIT: Я попытался импортировать dll C# в файл C++ с помощью проекта Code Code article. Но в моем файле C++ я не могу импортировать, как это:

#import "tlbfile.tlb" raw_interfaces_only named_guids 

ошибка не исходный файл открытым tldfile.tlh

EDIT 2: я решил использовать VC++. И сделал C# dll для вызова веб-службы. Но can not ссылаются на dll в приложении MFC.

Im работает на VS 2012

+0

У меня есть проект C#, который взаимодействует с проектом PHP через службу WCF. У меня есть проект C# с сервисом, а в PHP я называю wsdl. Взгляните на это: http://stackoverflow.com/questions/15254251/how-do-i-consume-wcf-service Возможно, это поможет вам. Webservice генерирует WSDL, а затем вам нужно вызвать WSDL в проекте C++. – Matheno

+1

Вы посмотрели на это? http://stackoverflow.com/questions/686452/create-wcf-service-for-unmanaged-c-clients – AFischbein

+0

@ user1467261 Да. Ответ действительно хорош. –

ответ

3

Как некоторые из упомянутых выше, что WCF предоставляет WSDL. Это независимая от платформы. Вы можете использовать любой из описанных вами способов.

1: Создайте клиент C# как библиотеку (dll) и используйте эту DLL в коде C++, используя совместимость. Но это утомительный процесс, поскольку взаимодействие является утомительным.

2: Создание прямой C++ клиент:

A. Create C++ proxy class from WSDL file 
B. Use that proxy class in your Code for communicating with Server. You will have to maintain Channel opening and closing. 

3: Используйте сторонние библиотеки для обработки канала связи. Одна из лучших библиотек - POCO. Poco Library for C++