如何从C++调用WCF服务

3
我有一个WCF服务,需要从C++中调用它。解决方案可以使用C# dll调用WCF,并从C++代码中调用它,或者直接使用C++ dll调用WCF远程服务。
编辑:我已经尝试使用以下Code Project article将C# dll导入到C++文件中,但是在我的C++文件中无法像这样导入。
#import "tlbfile.tlb" raw_interfaces_only named_guids

错误:无法打开源文件tldfile.tlh

编辑2:我决定使用VC++,并创建了一个C# dll来调用Web服务。但是在MFC应用程序中无法引用该dll。

我正在运行VS 2012。


我有一个C#项目,通过WCF服务与PHP项目通信。我有包含服务的C#项目,在PHP中我调用wsdl。看一下这个:https://dev59.com/lG_Xa4cB1Zd3GeqPzk0r 也许这会对你有所帮助。 Web服务生成一个WSDL,然后您需要在C++项目中调用WSDL。 - Matheno
1
你看过这个吗?https://dev59.com/QnRB5IYBdhLWcg3wN1AQ - The other other Alan
@user1467261 是的。答案非常好。 - Rohit Vipin Mathews
1个回答

3
如上所述,WCF公开WSDL,这是平台无关的。您可以使用您提到的任何一种方法。
1:创建C#客户端作为库(dll),并使用互操作性在C++代码中使用该dll。但这是一个繁琐的过程,因为互操作性很麻烦。
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。C++的Poco库


如何使用POCO调用WCF服务? - user8128167
请注意,我发现这个链接很有帮助:https://pocoproject.org/pro/docs/00152-RemotingNGTutorialPart3.html - user8128167

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接