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 :

problème de link vs2008/win7


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Par défaut problème de link vs2008/win7
    Bonjour tout le monde,

    j'essaie actuellement de compiler des sources C, originellement développées sous Visual C 6, sous Visual Studio 2008 sur Windows 7.

    l'application est constituée de multiples projets, je migre donc mes projets VC6 sous VS2008 et je teste les compil.

    mon problème survient au moment de compiler un des projet qui utilise un DLL compilée par un autre projet.
    la génération de la DLL déclenche quelques avertissement mais aboutit sans problème bloquant.
    en revanche quand je compile un projet utilisant cette DLL, je tombe sur plusieurs erreurs de ce type lors de la phase de link:
    Stu_fct_appli.obj : error LNK2019: unresolved external symbol "char * __stdcall StuMsgGetValue(void)" (?StuMsgGetValue@@YGPADXZ) referenced in function "int __stdcall Stu_Emission(struct demandeT2 *,int,struct expcourT *)" (?Stu_Emission@@YGHPAUdemandeT2@@HPAUexpcourT@@@Z)
    j'ai donc analysé la DLL en question avec l'outil Dependency Walker et je constate que les points d'entrée existent bien et que la fonction StuMsgGetValue est normalement accessible.

    sorti de ça, je cale et je ne comprends pas quel peut être le problème.

    auriez vous une idée de ce qui peut clocher et de comment résoudre de ce problème?

    merci

  2. #2
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    ton projet va-t-il cherche le .lib de ta dll au bon endroit ?
    les répertoires de sorties ont peut-etre changés entre vc6 et 2008.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Par défaut
    merci pour la piste à explorer fregolo52.

    hélas, ce n'est pas ça:
    le fichier .lib est généré dans le même répertoire que la DLL et ils ont tous 2 la même date/heure de génération (hier), et si je renomme le .lib, pour qu'il ne soit pas trouvé, j'obtiens le message suivant:
    LINK : fatal error LNK1181: cannot open input file 'stumsg.lib'
    ce qui est normal étant donné que je l'ai renommé (stumsg étant le nom du projet qui génère la DLL).
    ça met bien en évidence le fait que dans le cas normal, sans renommage, le .lib est bien trouvé.

    mais du coup, je suis pas plus avancé...

  4. #4
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    si tu ouvres stumsg.lib avec un éditeur de texte et que tu cherches StuMsgGetValue, vois-tu exactement ?StuMsgGetValue@@YGPADXZ ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Par défaut
    non, la chaine "?StuMsgGetValue@@YGPADXZ" ne se trouve nulle part dans mon .lib
    une recherche avec seulement "YGPADXZ" ne donne d'ailleurs pas plus de résultat.

    par contre si je cherche "StuMsgGetValue", je trouve les chaines suivantes:
    _StuMsgGetValue@0
    __imp__StuMsgGetValue@0
    _StuMsgGetValue@0
    __imp__StuMsgGetValue@0
    _StuMsgGetValue@0

    t'as une idée de la cause du problème?

  6. #6
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    pas trop d'idée, mais, il doit y avoir un souci dans les options de compilation ou de link.
    Peut-etre : C/C++ -> Advanced -> calling convention

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

Discussions similaires

  1. [DLL/classe template] problème de link
    Par Bob.Killer dans le forum C++
    Réponses: 7
    Dernier message: 31/08/2005, 18h56
  2. Problème de link...
    Par Royd938 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 30/09/2004, 17h33
  3. C/asm : problème pour link
    Par SteelBox dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 06/04/2004, 23h03
  4. Problème de LINK Bizarre !!
    Par Jasmine dans le forum MFC
    Réponses: 24
    Dernier message: 19/03/2004, 15h58
  5. Problème de link avec Borland C++ 5.5
    Par gelam dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 24/11/2003, 16h45

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