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 :

Problème Avec dll


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de rzayani
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par défaut Problème Avec dll
    Bonjour,
    J'ai créé une dll (Win32 dunamic link library).
    La classe principale (ClassA) de la dll contient un méthode pour lire un fichier .ini, et retourne un pointeur d'une autre classe (classB) de la dll qui contient les données.

    Dans mon application principale, j'ai ajouté le fichier .lib avec l'include des fichiers .h, et j'ai appelé la méthode de lecture. Jusque là il n'y a pas des problèmes.

    Mais pour accéder à la classe classB j'ai besion d'utiliser les méthodes de cette classe. Mais il m'affiche les erreurs suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    error LNK2001: unresolved external symbol "public: char * __thiscall ClassB::MethodeAppelé(void)" (?MethodeAppelé@classB@@QAEPADXZ)
    J'ai essayé d'exporté la classe classB avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #ifdef LECTURE_IN_EXPORTS
    #define LECTURE_INI_API __declspec(dllexport)
    #else
    #define LECTURE_INI_API __declspec(dllimport)
    #endif
    Mais il m'affiche des warning:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    warning C4251: 'm_pData' : class 'std::vector<class CData,class std::allocator<class CData> >' needs to have dll-interface to be used by clients o
    Merci pour vos réponses.

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Les DLLs n'aiment pas les objets de la STL exposés publiquement, à cause des conflits possibles de version.
    Si l'objet est privé, tu ne devrais plus avoir ce problème.

    Quant à l'autre erreur, il faudrait plus d'infos (déclaration/définition de la classe, defines dans les options du projet...)
    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.

Discussions similaires

  1. [WD14] Problème avec DLL ecrite en Visual Basic
    Par SonnyB dans le forum WinDev
    Réponses: 21
    Dernier message: 07/11/2011, 15h48
  2. Problème avec DLL (développée en C++)
    Par MarsOran dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 14/06/2009, 20h04
  3. problème avec dll de ressource
    Par adaneels dans le forum Delphi
    Réponses: 2
    Dernier message: 03/01/2007, 09h56
  4. Problème avec dll win32com
    Par jbidou88 dans le forum Langage
    Réponses: 2
    Dernier message: 28/08/2006, 14h06
  5. conteneur de la STL (problème avec DLL et COM)
    Par moldavi dans le forum MFC
    Réponses: 8
    Dernier message: 25/07/2005, 22h43

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