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

MFC Discussion :

Inclusion de librairie ratée


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 22
    Par défaut Inclusion de librairie ratée
    Bonjour à toutes et tous,

    Je suis une buse en C++ qui n'arrive pas à inclure une bibliothéque à mon projet VC++. Pourtant :

    1 Dans maClasse.h je fait l'include de l'interface de la librairie (un.h) et je fais aussi appelle à la librairie "#pragma comment(lib, "nom de la lib avec le chemin"")

    2 Dans maClasse.cpp je fais l'include de maClasse.h et j'appelle la fonction de ma librairie

    3 Dans mon projet j'ai bien ma librairie dans les liens ( project/Settings/Link/"Object/Library modules" avec mon nom de librairie et son chemin en dessous.

    A la compil : pas d'erreur (a priopi, l'interface est ok)
    A l'édition de liens : un beau message " unresolved external symbol __declspec(dllimport) unsigned long __cdecl " et le nom de ma fonction de bibliothèque.

    Je ne trouve pas de solution et si beaucoup de chose a été écrit sur le sujet je n'ai pas encore de solution.

    Je commence à devenir fada.

    Merci de vos aides.

    Là c'est pas glop !!!

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    apparement tu a un probleme avec ta lib qui fait reference à une dll non ?


  3. #3
    Invité de passage
    Inscrit en
    Février 2004
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1
    Par défaut
    Je suis nul aussi et j' ai excatement le meme probleme mais essaye toujours de mettre ta lib dans Project->Settings->Link->input

    voila c tout ce que je peux dire.
    Ciao.

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    t'a pas repondu à ma question tu link avec un .lib associe à un dll O/N ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 22
    Par défaut Suite du problème
    En effet cette librairie fait référence à une DLL qui est bien présente et fonctionne parfaitement dans un autre projet qui n'utilise pas les MFC

    Merci de vos aides

    Pas glop

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 22
    Par défaut
    oui je link avec un .lib qui émule une DLL

  7. #7
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    le type de fonction dans la dll c'est quoi du c ou du C++
    comment sont declarer les exports dans la dll?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 22
    Par défaut
    A priori du C++ mais je suis en aveugle (ie j'ai pas les sources, juste une interface.

    En fait j'ai un projet de type hello wold qui tourne avec cette bibliothèque mais quand je fais appelle à la fonction dans un projet MFC : oualou !

  9. #9
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    tu peux montrer une partie de l'interface ?

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 22
    Par défaut
    oui bien sur, voici des bribes d'interface

    //Remove under comment for generate DLL Import Library (Menu Options...)
    #include <windows.h>

    #include "sntype.h"

    #ifndef __INTERFACE_H__
    #define __INTERFACE_H__

    #ifdef SNVISION_EXPORTS
    #define SNVISION_API __declspec(dllexport)
    #else
    #define SNVISION_API __declspec(dllimport)
    #endif

    etc ...

    //INFORMATION
    ULONG SNVISION_API SNGetLastError (void );

    et toutes les def de fonctions.

    si tu as une idée

  11. #11
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    tu n'a pas definit SNVISION_EXPORTS dans ton prog?

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 22
    Par défaut
    Non

  13. #13
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    essaye de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #ifdef __cplusplus 
    extern "C"
    {
    #endif
     
    #include "un.h"
     
    #ifdef __cplusplus 
    }
    #endif
    pour voir

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 22
    Par défaut
    Ok, j'ai essayé, j'ai mis ta partie de code dans maclasse.cpp.

    Rien de changé quant au message d'erreur.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 22
    Par défaut
    Juste une question con comme ça : Le nom de l'interface et celui de la librairie ne sont pas forcément les mêmes ? "toto.h" peut être l'interface de "titi.lib" qui fait référence à "tata.dll" ?

    Merci d'eclairer la lanterne d'un homme perdu

  16. #16
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    moi j'ai toujours fais pour un .lib toto.lib une dll en toto.dll.
    autre chose essaye de mettre SNVISION_EXPORTS dans preprocessor definitions.

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 22
    Par défaut
    J'ai mis #define SNVISION_EXPORTS dans maClasse.h avant l'iclusion de l'interface.h

    Même topo.

    unresolved external symbol "unsigned long __cdecl nomfonction

    Je deviens fou. Pourquoi cela marche t'il avec un programme qui s'execute en fenètre dos et pas avec une appli mfc ?

    Merci de ton aide

  18. #18
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    tu es sure d'avoir bien integrer le .lib dans ton projet ?
    pour etre sur à 100 % inseres le directement dans la partie project add files to folder selection du .lib etc...

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 22
    Par défaut
    tout d'abord, farscape, un grand merci pour le temps que tu passe à m'aider.

    J'ai inclus le .lib au projet mais ... en vain. Comment avoir la certitude que le .lib correspond au .h et le tout à la DLL ?

  20. #20
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    avec le programme dependency walker (dans les tools de visual ).
    tu lis la dll et tu peux voir toutes les fonctions dans la partie central de l'ecran
    (entry point).
    pour le .lib la methode la plus rapide (et bourrine ) apres copy de l'original c'est de l'ouvrir avec notepad ou avec un visionneur de fichier en lecture .
    la on voit le nom des fontions ainsi que le nom de la dll associe.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/08/2007, 15h06
  2. inclusion de librairie avec Mingw
    Par Mortada dans le forum C++
    Réponses: 7
    Dernier message: 21/08/2007, 12h29
  3. Questions sur l'inclusion de librairies C
    Par souviron34 dans le forum Langage
    Réponses: 5
    Dernier message: 27/01/2007, 01h34
  4. Inclusion de librairie
    Par HaaRt dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 16/01/2007, 02h02
  5. Inclusion de librairie sous visual
    Par petdelascar dans le forum C
    Réponses: 11
    Dernier message: 07/12/2005, 20h39

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