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

C++ Discussion :

Intégrer un ActiveX


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 47
    Points : 40
    Points
    40
    Par défaut Intégrer un ActiveX
    Bonjour,

    Je souhaite intégrer un activeX, un ocx plus précisément. Je travaille sous Visual Studio mais la version Express. D'après ce que j'ai compris, la version complète de Visual permet d'intégrer un ocx très simplement (notamment génération automatique d'un wrapper). Cela ne semble pas être le cas avec VS Express. Sinon, pouvez-vous me dire comment faire ?

    En conséquence, j'ai utilisé Oleview.exe pour générer un .idl. Celui me semble correct. Ensuite, j'ai utilisé midl.exe pour générer un .tlb, un .hpp et un .cpp.
    Autant le .idl me paraît correct, autant le .hpp me semble douteux... Dans la déclaration de l'interface, il n'y a rien pour le c++.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ...
     
    #if defined(__cplusplus) && !defined(CINTERFACE)
     
        MIDL_INTERFACE("des chiffres et des lettres")
        _NOMDEMONOCX : public IDispatch
        {
        };
     
    #else 	/* C style interface */
    ...
    #endif
    Est-ce normal ? Ai-je utilisé le bon outil ? Si oui, y-t-il des options particulières ? Cela fait plusieurs jours que je lutte sur ce problème.

    Merci d'avance pour votre aide.

    Benoît

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 20
    Points
    20
    Par défaut
    Je n'utilise pas la version express, mais avec la version complète j'ai rajouté le .idl à mon projet puis je l'ai compilé seul et cela à généré les bons .h et .cpp.
    Tu rajoutes ces deux fichiers au projet et tu peux enlever le .idl

    Après je ne sais pas si c'est possible avec ta version.


    EDIT: j'avais utilisé ce lien pour m'aider http://support.microsoft.com/kb/194873

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 059
    Points : 12 095
    Points
    12 095
    Par défaut
    Je n'utilise pas, moi non plus, la version express, mais la méthode habituelle d'utilisation des composants COM, dont les OCX, est d'ajouter, juste après les #include, une ligne comme celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #import "C:/.../LeNomdeLOCX.ocx"
    Cela crée automatiquement les fichiers .tlh et .tli et ajoutes leur inclusion dans le code source du fichier cpp.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 47
    Points : 40
    Points
    40
    Par défaut
    Tout d'abord un énorme merci à tous les deux pour votre aide ! La situation était inextricable pour moi.

    Dans le détail, j'ai plutôt suivi la solution proposée par bacelar. Néanmoins, je suis allé voir le lien fourni par bbenator. Les .tlh et .tli ont bien été générés. Ensuite par contre, je n'ai pas eu à les inclure dans le code source du .cpp. Le lien fourni par bbenator le précise d'ailleurs :
    Both header files are placed in the output directory specified by the /Fo (name object file) option. They are then read and compiled by the compiler as if the primary header file was named by a #include directive.
    Il faut juste préciser le namespace pour que tout fonctionne bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #import "C:/.../LeNomdeLOCX.ocx"
    using namespace LeNomdeLOCXLib ;
    Je n'ai pas rencontré de problème avec ma version Express.

    Merci encore !

    Benoît

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

Discussions similaires

  1. Intégrer un ActiveX sous Visual Studio Express
    Par Bertrand_g dans le forum EDI/Outils
    Réponses: 2
    Dernier message: 15/09/2010, 17h54
  2. Réponses: 8
    Dernier message: 25/01/2010, 14h21
  3. Intégrer un ActiveX dans une page ASP.net
    Par inter_amine dans le forum ASP.NET
    Réponses: 7
    Dernier message: 17/02/2009, 11h52

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