首页 > 后端开发 > C++ > 正文

如何从非托管 C 客户端与 WCF 服务进行通信?

Barbara Streisand
发布: 2024-11-15 10:48:02
原创
736 人浏览过

How to Communicate with WCF Services from Unmanaged C   Clients?

使用非托管 C 客户端与 WCF 服务进行通信

了解将非托管 Windows C 客户端与 WCF 服务连接的需求,我们必须深入研究几种潜在的方法,每种方法都有其

WWSAPI

不幸的是,WWSAPI 选项不适合这种情况,因为它与 Windows 2000 客户端不兼容。

ATL服务器

尝试使用时ATL Server,扁平化 WSDL 并删除策略引用,生成的 WSDL 格式仍然与 sproxy 不兼容。

与托管 C DLL 桥接

最有效的解决方案是编写 WCF使用 C# 编写客户端代码,并使用 C 桥 DLL 来促进非托管 C 代码和托管 WCF 之间的通信代码。

创建 C Bridge DLL 的分步指南

  1. 创建 HelloService WCF 服务

    • 初始化 Windows NT 服务以托管 WCF Hello服务。
    • 定义 IHelloService 和 HelloService 类。
  2. 构建服务

    • 构建 Windows NT 服务项目。
    • 安装service.
  3. 创建 Bridge DLL 接口

    • 添加 IHelloServiceClientBridge.h,声明桥 DLL 的公共接口。
  4. 创建 Bridge DLL 实现

    • 添加 HelloServiceClientBridge.h 和 .cpp 以实现 Bridge DLL 的功能。
    • 包含托管 C 标头文件。
    • 使用 #using 指令引用 HelloServiceClient 程序集。
    • 实现 SayHello() 方法以进行 WCF 服务调用并将结果封送到非托管字符串。
  5. 更新 MFC应用程序

    • 添加 IHelloServiceClientBridge.h。
    • 在 MFC 应用程序的按钮处理程序中调用 SayHello() 方法。
    • 在信息

结论

此详细过程为利用非托管 C 客户端与 WCF 服务交互提供了可行的解决方案。通过使用 C 桥 DLL,可以无缝集成这些组件并实现所需的通信功能。

以上是如何从非托管 C 客户端与 WCF 服务进行通信?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板