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 :

Trackage d'erreur n'apparaissant que dans une dll


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2008
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 522
    Par défaut Trackage d'erreur n'apparaissant que dans une dll
    Bonjour,

    j'ai créé un programme avec des classes cl. Celui-ci fonctionne parfaitement.
    Je veux exporter les classes cl pour les réutiliser ailleurs.
    Je recrée donc un projet dll avec copier coller des classes cl et fonctions à exporter.
    J'ajoute des __declspec(dllexport) à toutes les fonctions que je veux exporter (aussi celles dans les classes).
    Je compile la dll, ok.
    Je crée un nouveau projet pour tester la dll,
    je mets tout ce qu'il faut (linkage, fichiers .h), compile.J'obtiens un executable ... qui plante.
    Je ne sais pas d'où vient l'erreur. Je pensais que c'était l'export des les dll qui était mal fait mais on m'a dit que non sur le tchat.
    L'erreur est générée au niveau de la sortie du programme.

    Je ne sais pas comment tracker le problème et je renvoie un lien vers le code source (complet) pour visual studio : http://www.mediafire.com/?c3in78b9q7wxxtu
    Pouvez-vous m'aider?

    raphchar

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    __declspec(dllexport) c'est pour l'export; pour l'import il faut __declspec(dllimport) dans le header inclus
    En général on crée une MACRO pour ça, selon qu'on est en DLL_BUILD ou non

    Tu peux directement préfixer la class pour exporter la classe entière et chacune de ses fonctions.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre éclairé
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2008
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 522
    Par défaut
    Citation Envoyé par Bousk Voir le message
    __declspec(dllexport) c'est pour l'export; pour l'import il faut __declspec(dllimport) dans le header inclus
    Bien sûr mais linker un .lib est aussi efficace et c'est ce que je fais, d'ailleurs aucun problème de ce coté-là.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par raphchar Voir le message
    Bien sûr mais linker un .lib est aussi efficace et c'est ce que je fais, d'ailleurs aucun problème de ce coté-là.
    ?

    Pour utiliser une dll il faut
    - créer la dll
    - avoir le .lib correspondant
    - inclure les header correct et correctement écrits (dllimport)
    - linker le .lib
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Membre éclairé
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2008
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 522
    Par défaut
    Citation Envoyé par Bousk Voir le message
    ?

    Pour utiliser une dll il faut
    - créer la dll
    - avoir le .lib correspondant
    - inclure les header correct et correctement écrits (dllimport)
    - linker le .lib
    inclure les header correct et correctement écrits (dllimport)->ok mais bon même en le modifiant ca ne change rien au problème

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bon, maintenant... l'application qui plante...
    oui certes, mais t'as pas plus vague ?
    crash ? exception ? fonctionnement incorrect ? ne démarre même pas ? moment précis ? action précise ?
    si la dll est de toi et tu en as le code source, tu peux la debuger.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

Discussions similaires

  1. Réponses: 12
    Dernier message: 12/05/2006, 09h21
  2. [VB6] Erreur durant la recherche dans une table
    Par quaife dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/04/2006, 17h21
  3. erreur: ...ANSI_NULLS et ANSI_WARNINGS.. dans une storedProc
    Par MoTUmBo dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 01/12/2005, 21h24
  4. Réponses: 9
    Dernier message: 19/10/2005, 04h35
  5. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20

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