Maison >développement back-end >C++ >Comment communiquer avec les services WCF à partir de clients C non gérés ?

Comment communiquer avec les services WCF à partir de clients C non gérés ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-15 10:48:02834parcourir

How to Communicate with WCF Services from Unmanaged C   Clients?

Utilisation de clients C non gérés pour communiquer avec les services WCF

Comprenant la nécessité de connecter des clients Windows C non gérés aux services WCF, nous devons nous plonger dans plusieurs approches potentielles, chacune avec ses limites.

WWSAPI

Malheureusement, l'option WWSAPI n'est pas adaptée à ce scénario car elle est incompatible avec les clients Windows 2000.

Serveur ATL

Lorsque vous tentez d'utiliser le serveur ATL, en aplatissant le WSDL et en supprimant les références à la politique, le format WSDL résultant reste incompatible avec le sproxy.

Pontage avec une DLL C managée

La solution la plus efficace consiste à écrire du code WCF pour les clients en C# et à utiliser une DLL de pont C pour faciliter la communication entre le code C non managé et le code WCF managé.

Guide étape par étape pour créer la DLL C Bridge

  1. Créer le service WCF HelloService

    • Initialisez un service Windows NT pour héberger le service WCF Hello.
    • Définissez les classes IHelloService et HelloService.
  2. Créez le service

    • Créez le projet de service Windows NT.
    • Installez le service.
  3. Créez une interface DLL Bridge

    • Ajoutez IHelloServiceClientBridge.h, qui déclare l'interface publique de la DLL du pont.
  4. Créer une implémentation de la DLL du pont

    • Ajoutez HelloServiceClientBridge.h et .cpp pour implémenter la fonctionnalité de la DLL du pont.
    • Incluez les fichiers d'en-tête Managed C.
    • Utilisez les directives #using pour référencer l'assembly HelloServiceClient.
    • Implémentez la méthode SayHello() pour effectuer des appels de service WCF et regrouper le résultat vers une chaîne non gérée.
  5. Mettre à jour l'application MFC

    • Ajoutez IHelloServiceClientBridge.h.
    • Appelez la méthode SayHello() dans le gestionnaire de boutons de l'application MFC.
    • Affichez la réponse du service WCF dans une boîte de message.

Conclusion

Ce processus détaillé fournit une solution viable pour exploiter les clients C non gérés pour interagir avec les services WCF. En utilisant une DLL de pont C, il devient possible d'intégrer de manière transparente ces composants et d'obtenir la fonctionnalité de communication souhaitée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn