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

Visual C++ Discussion :

DLL et activeX


Sujet :

Visual C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Par défaut DLL et activeX
    Bonjour,

    J'ai 2 classes très semblables qui me permettent de gérer un péripjérique branché sur port série.
    La première, que j'utilisais jusqu'à aujourd'hui, est issue d'un controle ActiveX : je la génére grace à classWizard ; celle-ci hérite de CWnd :
    class CInterfaceModule : public CWnd

    La deuxième provient d'une DLL et hérite de COleDispatchDriver :
    class IInterfaceModule : public COleDispatchDriver
    Les 2 classes ont des signatures identiques.

    Hors, dés la première acquisition, tout plante.
    Mais, les fonctions d'acquisition des 2 classes sont toutes 2 identiques :

    VARIANT result;
    InvokeHelper(0xb, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
    return result;


    Si je tente de passer directement par la DLL, c'est que j'en ai besoin pour une autre classe dont je ne peux pas générer de version "CWnd".
    Peut-etre y a t'il un moyen particulier de gérer les COleDispatchDrivers ?

    Merci d'avance de votre aide,
    Yéyé

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Par défaut
    Bon, il y a un peu de mieux :

    après la création de mon IInterfaceModule myIM, j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myIM.CreateDispatch("FSA.InterfaceModule");
    et çà marche.

    Je teste donc sur mon autre classe (celle qui ne peut pas etre créée en "version CWnd").
    L'utilisation de CreateDisplatch semble fonctionner car la valeur m_lpDispatch (de COleDispatchDriver) est modifiée.
    Mais, alors que tous les parametres sont identiques, il n'arrive pas à se connecter au périphérique et m'envoies un message d'erreur ("impossible de trouver le périphérique, vérifiez qu'il est bien connecté").

    ... et non : le port série n'est pas bloqué

    Ca devient plus pointu, mais si quelqu'un a une idée ...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Par défaut
    c'est bon : c'etait la bonne solution mais j'avais un objet serialPort qui n'avait pas un BaudRate correct, donc forcément çà marche moins bien.

    Résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/03/2010, 10h33
  2. dll et activeX
    Par maz dans le forum C++
    Réponses: 1
    Dernier message: 16/09/2008, 16h25
  3. Probleme recensement DLL ou ActiveX avec Regsvr32
    Par Hypollite76 dans le forum Delphi
    Réponses: 1
    Dernier message: 23/10/2006, 15h50
  4. DLL ou ActiveX
    Par Delphi-ne dans le forum Delphi
    Réponses: 4
    Dernier message: 08/09/2006, 14h37
  5. DLL ou ActiveX ?
    Par olive_le_malin dans le forum MFC
    Réponses: 10
    Dernier message: 06/06/2006, 18h24

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