IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

VC++ .NET Discussion :

client OPC, librairie COM


Sujet :

VC++ .NET

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    19
    D�tails du profil
    Informations personnelles :
    �ge : 40

    Informations forums :
    Inscription : Novembre 2007
    Messages : 19
    Par d�faut client OPC, librairie COM
    Bonjour, je cherche a creer un client OPC pouvant se connecter a un serveur distant.

    j ai utilise ce code :
    http://lhcb-online.web.cern.ch/lhcb%...lienttutorial/

    que j ai ensuite modifie pour utiliser la librairie COM au lieu de DCOM (a terme ce client devra tourner sur windows mobile).
    (CoCreateInstance au lieu de CoCreateInstanceEx)
    Le client fonctionne si le serveur se trouve sur la meme machine.

    Lorsque le serveur n est plus sur la meme machine,
    CLSIDFromString ne fonctionne plus, donc je rentre le CLSID du serveur manuellement.

    Comme je ne peux plus utiliser CoCreateInstanceEx pour instancier un serveur distant, il faut que je precise le chemin vers le pc serveur dans le registre ( HKCR\AppID\{GUID2} ou GUID2 est le CLSID du serveur sous RemoteServerName) ce que je fait aussi "manuellement". Mais cela ne marche toujours pas.

    - Y a t il une autre solution pour regler le probleme de CLSIDFromString ?

    - Est il possible d instancier un serveur distant sachant que je doit obligatoirement utiliser CLSCTX_LOCAL_SERVER avec CoCreateInstance ou dois je utiliser une autre fonction?
    (???If this value is available, the activation request will be forwarded to the SCM on the designated host machine. It is worth noting that although the client application will only use the CLSCTX_LOCAL_SERVER flag when querying the activation, the request will be forwarded to the remote machine if no local servers are registered. ??? ca marche ou pas?)

    (CoGetClassObject semble realiser la meme operation.
    Mais l entete dans mon editeur est
    WINOLEAPI CoGetClassObject(
    IN REFCLSID rclsid,
    IN DWORD dwClsContext,
    IN LPVOID pvReserved,
    IN REFIID riid,
    OUT LPVOID FAR* ppv
    );
    et sur msdn :
    STDAPI CoGetClassObject(
    REFCLSID rclsid,
    DWORD dwClsContext,
    COSERVERINFO * pServerInfo,
    REFIID riid,
    LPVOID * ppv
    );
    pourquoi pServerInfo a t il disparu?)

    - Je suis preneur de tout lien qui pourrait me donner des details sur l utilisation de la COM librairie, je debute dans ce domaine.
    ( quel est la difference entre le IID et le CLSID de l OPC serveur ;
    quelle est la difference entre GUID1 et GUID2 sur ce site:
    http://www.codeproject.com/KB/COM/ma...?display=Print
    ??GUID1 represents the class ID of the COM class factory whilst GUID2 represents the COM Application ID used by the COM class factory?? )

    J apprecierai grandement votre aide sur l une de ces questions!!

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Pour la diff�rence sur les prototypes, �a ne fait pas vraiment de diff�rence, car ledit pointeur doit toujours �tre NULL sous Windows Mobile.

    Je pense que tu cherches � faire quelque chose que Windows Mobile ne supporte vraiment pas. Tu n'arriveras sans doute pas � utiliser ce serveur COM de mani�re distante � moins peut-�tre de faire ton propre proxy, avec ton propre marshalling...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    19
    D�tails du profil
    Informations personnelles :
    �ge : 40

    Informations forums :
    Inscription : Novembre 2007
    Messages : 19
    Par d�faut
    Merci.

    mais dans un premier temps j essaye tout simplement de faire marcher le client sur un pc, ce qui devrait etre faisable.

    - qd j utilise CoCreateInstanceEx comme ds le tutorial http://lhcb-online.web.cern.ch/lhcb%...lienttutorial/
    la fonction me retourne RPC Server unavailable (0x800706BA)
    -Je voudrais aussi savoir comment instantier le serveur distant, sans utiliser CoCreateInstanceEx,

Discussions similaires

  1. passer une chaine de caract�re entre client et serveur COM
    Par ali.ensi dans le forum Visual C++
    R�ponses: 7
    Dernier message: 28/03/2007, 17h30
  2. D�veloppement d'un client OPC
    Par awane dans le forum WinDev
    R�ponses: 3
    Dernier message: 05/09/2006, 20h46
  3. [Librairies] COM et WMI pour accéder à la base SAM de Windows Server
    Par knocc dans le forum Biblioth�ques et frameworks
    R�ponses: 1
    Dernier message: 24/04/2006, 16h43
  4. [Outils][VB.NET/C#] Comment créer un client OPC ?
    Par Angath dans le forum EDI/Outils
    R�ponses: 4
    Dernier message: 07/10/2005, 16h41
  5. [COM] Impossible d'initialiser la librairie COM
    Par Neilos dans le forum Windows
    R�ponses: 2
    Dernier message: 07/08/2005, 17h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo