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++/CLI Discussion :

Dll managé mixte [Fait]


Sujet :

C++/CLI

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut Dll managé mixte
    Bonjour,

    j'ai écris une bibliothèque de classes en compilation /clr, à l'intérieur il y des classes managées et des classes natives, la compil ne pose aucun problème.

    Par contre lorsque j'utilise mon DLL dans une application console, elle aussi en /clr, je ne peux déclarer que des variables de type des classes managées sinon j'ai l'erreur "identificateur inconnu". Pourtant dans l'explorateur d'objet je vois bien toutes les classes autant les natives que les managées.

    J'aimerais donc savoir ou je me suis planté, puisque je pense que c'est faisable d'écrire des DLL mixtes.

    Merci

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    elles sont publiques ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut
    Oui pour tester j'ai tout mis en public (c'est mal ): classes, méthodes et attributs.

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    si c'est dans une assembly, on ne peut pas y acceder directement; Il faut un wrapper

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut
    Finalement j'ai voulu séparé le code, j'ai fait un dll win32 natif et je voulais l'inclure dans ma libraire de classes de la CLR, le problème c'est que VS2005 ne me génère que le dll win32 et pas le lib est-ce normal ? Il faut bien le lib. le .dll et le .h pour utiliser un dll win32 natif ?

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    c'est mieux, il faut que tu exportes des valeurs avec __declspec(dllexport)

    tu peux regarder aussi ce tutoriel http://nico-pyright.developpez.com/t...vc2005/interop

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut
    Merci, je l'avais déja lu mais il m'avait mis encore plus le doute sur le fait que je me sois planté quelque part dans les paramètres du projet parce que au 3.1 t'écrit que

    Après compilation et édition de liens, on obtient un fichier libC.lib et un fichier libC.dll.
    Pourtant j'avais créer le projet de la même façon à la seule différence que j'ai des classes C++ et pas seulement des fonctions C.

  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    Citation Envoyé par nico-pyright(c)
    il faut que tu exportes des valeurs avec __declspec(dllexport)
    est-ce que tu exportes tes fonctions ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut
    Oui en fait j'avais rien mis comme j'avais que des classes et que je croyais que le modificateur __declspec(dllexport) c'était que pour les fonctions je l'ai rajouté et maintenant j'ai bien les .lib aussi donc merci j'ai pu faire ce que je voulais, même si comme d'habitude d'autres problèmes sont arrivés par la suite

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

Discussions similaires

  1. Appel DLL managé en delphi
    Par bdurtaut dans le forum C++/CLI
    Réponses: 1
    Dernier message: 25/10/2007, 08h54
  2. C# DLL managé et non managé
    Par damien77 dans le forum C#
    Réponses: 1
    Dernier message: 01/07/2007, 03h32
  3. DLL managée et system32
    Par kamkam32 dans le forum C++/CLI
    Réponses: 2
    Dernier message: 12/02/2007, 15h57
  4. Dll managé utilise une dll non managé
    Par DAMVAL dans le forum C++/CLI
    Réponses: 3
    Dernier message: 28/11/2006, 10h36
  5. [C#] Comment integrer dll C++ mixte managé/natif ?
    Par groskek dans le forum C++/CLI
    Réponses: 5
    Dernier message: 25/01/2006, 21h46

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