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

VB.NET Discussion :

utilisation des classes et fonctions d'une dll c++ en vb


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 16
    Points
    16
    Par défaut utilisation des classes et fonctions d'une dll c++ en vb
    Bonjour,

    je veux intégrer une dll compilé d'un projet c++ dans un projet vb mais il me sort l'erreur "not valid assembly or COM component" ou quelque chose comme ça lorsque je veux l'ajouter dans les références.
    J'ai cru remarquer que c'était parceque la dll est en c++ et qu'on ne peut faire des ref qu'avec des dll vb
    est-ce exact?
    (j'ai créé des projets dll vide c++ et il me sortait la même erreur. Ca n'a fonctionné qu'avec une dll vide vb.)


    sinon, j'ai vu qu'on pouvait déclarer les fonctions de la manière suivante
    Declare Sub nomFonctionLib "dllPath" (args)

    peut on faire la même chose avec les classes?

    info supplémentaire:
    la dll c++ est compilé avec visual 2003, je voulais l'inclure dans un projet vb 2005. (j'ai aussi essayé de l'inclure dans un projet vb 2003, sans succès)

    merci d'avance

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Avec VB.NET tu peut rajouter des références vers n'importe quelle dll .NET (C#, VB.NET, C++/CLI, Delphi.net, etc...) et c'est là la nuance.
    En fait tu essayes d'accéder à une dll native C++, tu ne pourra pas le faire en ajoutant une référence. Tu as donc plusieurs solutions pour y arriver :
    - Créer une dll en C++/CLI (en gros, C++.NET) qui permet de créer des classes managées (accessible par les langages .NET) et qui se chargera de faire les appels à la classe native (procédé des wrappers).
    - Créer, dans la dll native des fonctions permettant d'appeler les fonctions sans être obligé de créer une classe, car ces dernières tu ne pourra pas les importer vers ton code en VB. Tout ce que tu peut faire, c'est la méthode que tu as décrite, cad importer une fonction externe avec DllImport ou je sais pas trop (je hais vb )
    - Si tu as accès au code source de la dll tu peut tenter de la recompiler avec VS 2005 en rajoutant ref devant toute les classes (pour les rendre managées) et en compilant avec l'option /clr. Ce ne sera sans doute pas suffisant mais la conversion vers une dll managée ne devrais pas être trop compliquée.
    - Enfin tu peut créer un composant COM en C++ pour ta dll car à partir d'un langage .NET on peut importer et utiliser directement les composants COM quelque soit le langage qui les a crée.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    étant donné que le projet pour compiler la DLL fait référence à plusieurs autres projets ou lib dont je n'ai pas forcément les sources, une conversion devient assez compliqué^^

    mais j'ai recompilé la dll avec un .def pour définir quelles fonctions je pourrais utiliser sous vb (sans, il ne trouvait pas la fonction quand je voulais l'appeler) et ça marche. Donc je vais continuer dans cette voie je pense ^^

    merci pour tes réponses !

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

Discussions similaires

  1. [WD14] Utiliser des icônes qui proviennent d'une DLL
    Par AymenMSD dans le forum WinDev
    Réponses: 0
    Dernier message: 07/10/2011, 15h33
  2. utilisation des classes et fonctions d'une dll c++ en vb
    Par rigane_med dans le forum VB.NET
    Réponses: 0
    Dernier message: 24/06/2011, 00h52
  3. Utiliser des fonctions d'une DLL C++
    Par ced001 dans le forum Delphi
    Réponses: 2
    Dernier message: 09/02/2007, 16h03
  4. utilisation des fonctions d'une dll
    Par jackk dans le forum C++
    Réponses: 14
    Dernier message: 15/06/2005, 16h50

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