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 :

Fichier invalide ou corrompu


Sujet :

MFC

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Fichier invalide ou corrompu
    Bonjour à tous,

    Je suis actuellement en train d'intégrer une interface qui avait été faite sous C++ Builder sur Microsoft Visual C++

    Et dans ce projet, je dois utiliser une librairie 'c843_gcs_dll.lib' fournie par une application.

    J'ai le '.lib', le '.dll' et le '.h' dans le même dossier.
    J'ai inclu le fichier '.h' à mon projet et j'ai rajouté le '.lib' dans Projet>Settings>Link>Objets/Library Modules.

    Cependant, lors de la compilation, j'ai cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    c843_gcs_dll.lib : fatal error LNK1136: invalid or corrupt file
    Error executing link.exe.
     
    test_MFC.exe - 1 error(s), 0 warning(s)
    S'il est invalide (ce que je ne pense pas car il provient d'une grosse boîte) ou s'il est corrompu, existe-il un moyen de le tester ?

    J'ai beau regarder sur les forums les personnes ayant le même problème, la plupart du temps, ils se sont trompé lors du link en mettant '.dll' au lieu de '.lib'.

    Ce qui est bizarre, c'est que j'ai fait la même chose avec la librairie d'une autre application mais venant de la même boîte et cela marche.

    Quelqu'un aurait-il une idée du problème s'il vous plait? Je vous remercie d'avance.

  2. #2
    Membre confirmé Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Points : 521
    Points
    521
    Par défaut
    salut,

    je ne suis pas sûr que les lib construites par C++ Builder soient compatibles avec celles de Visual Studio.

    le mieux c'est de recompiler la DLL sur MSVC afin d'avoir la bonne lib, meme si c'est la DLL produite par C++ Builder qui est exploitée.

    Attention aussi à la décoration des noms de fonction dans la DLL...

    @+

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Bonjour stephdim,

    Je pense que je me suis mal fait comprendre, en fait, je dois utiliser un '.lib' fournie par une application externe à C++ Builder et Visual Studio.

    Je me suis renseigné et d'après ce que j'ai compris, il faut que j'instancie le '.dll' au début du programme. Je vais essayer ça de suite.

    Merci pour ton aide.

  4. #4
    Membre confirmé Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Points : 521
    Points
    521
    Par défaut
    le fichier lib est généré lorsque tu créés la DLL. Il dépend donc du linker utilisé. Les fichiers lib produit par le linker C++ builder (ou autres) ne sont pas compatibles (je crois, c'est pas une certitude) avec les fichiers lib produit par MSVC.

    il y a un outil qui s'appelle LIB pour générer une lib à partir d'un fichier DEF.

    @+

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Je ne possède pas de fichier .DEF

    J'ai essayer d'aller chercher le '.dll' avec la fonction LoadLibrary mais ça ne marche pas.

    Je vais essayer de continuer à chercher.

  6. #6
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 396
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 396
    Points : 20 507
    Points
    20 507
    Par défaut
    Citation Envoyé par miwarrior Voir le message
    Et dans ce projet, je dois utiliser une librairie 'c843_gcs_dll.lib' fournie par une application.

    Cependant, lors de la compilation, j'ai cette erreur
    c843_gcs_dll.lib : fatal error LNK1136: invalid or corrupt file
    Error executing link.exe.

    S'il est invalide (ce que je ne pense pas car il provient d'une grosse boîte) ou s'il est corrompu, existe-il un moyen de le tester ?

    .
    AAArrrgh les fichiers .lib Borland et .lib Microsoft/VC++ sont totalement incompatibles..ils ne sont pas formattés pareil...
    tu peux batailler longtemps...

    Regarder les outils fournis avec Borland tu dois trouver COFF2OMF ou bien OMF2COFF.exe ( jean-pierre )

    Sinon essayer peut-être ceci
    CAUSE
    At link time, the Borland file IMPORT.LIB is included before the OLE 2.0 libraries. In the IMPORT.LIB file there is a reference to the OLE 1.0 OleCreate function.
    RESOLUTION
    Include OLE2.LIB before IMPORT.LIB when specifying the libraries for linking.
    sinon avec l'utilitaire LIB.exe de Visual Studio

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    je travaille sous VB, et le fichir .lib est un fichier qui ne vient ni de Borland, ni de VB, c'est un fichier qui a été fourni par la sociéte 'Physik Instrument' pour piloter un translateur. Le fichier marche sous Borland mais sous VB, j'ai l'erreur cité ci-dessus...

    Je n'ai toujours pas réussi à résoudre le problème

    PS: j'ai essayé ce que tu m'as écrit mais il ne trouve pas les fichiers IMPORT et OLE2

Discussions similaires

  1. Fichier docx telechargé corrompu
    Par geof dans le forum VB.NET
    Réponses: 2
    Dernier message: 16/03/2010, 15h04
  2. [FPDF] fichier mal généré/corrompu
    Par JuTs dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 08/05/2007, 22h26
  3. Fichier - invalid null pointer
    Par poussinphp dans le forum C++
    Réponses: 9
    Dernier message: 24/04/2007, 13h05
  4. Réponses: 2
    Dernier message: 25/08/2006, 13h26
  5. Réponses: 2
    Dernier message: 04/05/2006, 19h54

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