Erreur "fichier non valide ou endommagé" en C++ en incluant une librairie
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Erreur "fichier non valide ou endommagé" en C++ en incluant une librairie



  1. #1
    fiatlux

    Erreur "fichier non valide ou endommagé" en C++ en incluant une librairie


    ------

    Bonjour !

    Je suis en train d'essayer d'utiliser cette librairie : http://www.libxl.com/ qui permet de lire et écrire dans des fichiers Excel en C++.
    Donc je l'ai téléchargée (la version d'essai), ils ont mis un read_me pour savoir comment faire l'édition des liens et l'inclusions des fichiers sous Microsoft Visual C++, je cite :
     Cliquez pour afficher

    J'ai donc fait tout ça, j'utilise Visual Studio 2005. J'ai pris un des codes exemples du site :
    Code:
    #include "libxl.h"
    using namespace libxl;
    
    int main() 
    {
        Book* book = xlCreateBook(); // xlCreateXMLBook() for xlsx
        if(book)
        {
            Sheet* sheet = book->addSheet(L"Sheet1");
            if(sheet)
            {
                sheet->writeStr(2, 1, L"Hello, World !");
                sheet->writeNum(3, 1, 1000);
            }
            book->save(L"example.xls");
            book->release();
        } 
        return 0;
    }
    Ensuite, je fais "Générer la solution" et j'ai cette erreur :
    C:\Documents and Settings\Moi\Mes documents\Visual Studio 2005\libxl\lib\libxl.lib : fatal error LNK1136: fichier non valide ou endommagé

    Pourtant j'ai tout fait correctement au niveau des chemins d'accès et tout, le fichier est là, mais est-ce qu'il est vraiment endommagé (ça m'étonnerait) ou c'est autre chose ?

    Toute aide est la bienvenue ! Merci

    -----
    La pie niche-t-elle haut ? Oui, la pie niche haut.

  2. #2
    invite4492c379

    Re : Erreur "fichier non valide ou endommagé" en C++ en incluant une librairie

    Hello,

    peut-être un problème de versions 32/64 bits ? la dll n'est pas dans bin/Debug ou bin/Release ?

  3. #3
    fiatlux

    Re : Erreur "fichier non valide ou endommagé" en C++ en incluant une librairie

    Hello,

    Merci de la réponse. Je viens d'essayer de mettre le chemin vers lib64 au lieu de lib, et j'ai pris le dll qui était dans le dossier bin64 autre lieu de l'autre, et maintenant j'ai ça:
    1>script.obj : error LNK2019: symbole externe non résolu __imp__xlCreateBookW référencé dans la fonction _main
    1>C:\Documents and Settings\Moi\Mes documents\Visual Studio 2005\Projects\WriteToXLS\Debug \WriteToXLS.exe : fatal error LNK1120: 1 externes non résolus

    C'est le même problème ?...

    EDIT: pour la dll, elle devrait être dans ces dossiers ? parce qu'elle est juste dans bin/. (mais c'est dans le dossier de libxl. Moi je l'ai copié dans le répertoire de mon projet, comme ils disent dans le readme.)
    Dernière modification par fiatlux ; 17/12/2011 à 21h59.
    La pie niche-t-elle haut ? Oui, la pie niche haut.

  4. #4
    invite4492c379

    Re : Erreur "fichier non valide ou endommagé" en C++ en incluant une librairie

    Je n'ai jamais utilisé C++ sous vs, mais suivant la configuration compile soit en release ou debug (ou toute autre conf rajoutée). L'exutable est ensuite placé dans un répertoire bin/debug (de souvenir) d'où il sera exécuté, la dll s'y trouve-t-elle ? sinon essaye de la rajouter.
    Toujours de souvenir, dans l'explorateur de projet tu peux sélectionner la dll et dans les propriétés dire "toujours copier" pour la placer automatiquement quel que soit le mode d'exécution.

  5. A voir en vidéo sur Futura
  6. #5
    fiatlux

    Re : Erreur "fichier non valide ou endommagé" en C++ en incluant une librairie

    Là j'étais apparemment en config debug, j'ai essayé release, j'ai toujours cette erreur. J'ai mis la dll dans le répertoire debug mais c'est pas mieux. Par contre dans les propriétés, je ne vois pas où ajouter la dll. J'ai juste ajouté la .lib comme dit dans le readme mais j'ai rien fait pour la dll à part la mettre dans le répertoire du projet.
    Eest-ce qu'il faut que je l'ajoute en faisant clique droit sur le projet -> ajouter ->... mais là je ne peux pas ajouter une dll, seulement des .cpp et d'autres extensions... C'est parce que j'ai pas créé le bon type de projet ? Pour mon projet j'ai fait Fichier->nouveau projet et là j'avais le choix en plein de types, j'ai pris Application Console Win32.... ça peut être ça le problème ?
    La pie niche-t-elle haut ? Oui, la pie niche haut.

  7. #6
    invite4492c379

    Re : Erreur "fichier non valide ou endommagé" en C++ en incluant une librairie

    Citation Envoyé par fiatlux Voir le message
    Là j'étais apparemment en config debug, j'ai essayé release, j'ai toujours cette erreur. J'ai mis la dll dans le répertoire debug mais c'est pas mieux. Par contre dans les propriétés, je ne vois pas où ajouter la dll. J'ai juste ajouté la .lib comme dit dans le readme mais j'ai rien fait pour la dll à part la mettre dans le répertoire du projet.
    Eest-ce qu'il faut que je l'ajoute en faisant clique droit sur le projet -> ajouter ->... mais là je ne peux pas ajouter une dll, seulement des .cpp et d'autres extensions... C'est parce que j'ai pas créé le bon type de projet ? Pour mon projet j'ai fait Fichier->nouveau projet et là j'avais le choix en plein de types, j'ai pris Application Console Win32.... ça peut être ça le problème ?
    Non, je ne crois pas ... console c'est bien avec l'exemple.
    Tu as bien tout pris en 64bit, lib et dll.

    pff ... je sèche ...

  8. #7
    inviteccac9361

    Re : Erreur "fichier non valide ou endommagé" en C++ en incluant une librairie

    Bonjour,

    Le problème peut venir de là.

    Citation Envoyé par BYTES
    The 1136 can also mean your library has a bad header or is zero size. You might reinstall it.
    May 24 '08 #2
    reply
    --------------------------------------------------------------------------------
    P: 23 haneeshkb re: libsybdb.lib : fatal error LNK1136: invalid or corrupt file
    Read this: http://msdn.microsoft.com/en-us/libr...2f(VS.71).aspx.

    One of the things that can cause this is using global variables that need to be initialized by constructors. If this s youre situation, also read http://bytes.com/forum/thread737451.html.

    The 1136 can also mean your library has a bad header or is zero size. You might reinstall it.
    thanks for the reply.
    It solved.. actually there was a version mismatch of libsybdb.lib file in sybase library folder and my project library folder.
    May 26 '08 #3
    http://bytes.com/topic/c/answers/796...d-corrupt-file

  9. #8
    fiatlux

    Re : Erreur "fichier non valide ou endommagé" en C++ en incluant une librairie

    Merci, je vais essayer ça, je ne suis pas chez moi pour l'instant
    La pie niche-t-elle haut ? Oui, la pie niche haut.

Discussions similaires

  1. comment convertir un fichier "TIF" en "JPEG"
    Par invite36a0c02a dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 15/04/2009, 21h21
  2. micro sd erreur"fichier non supporté"pour les musiques, et "?" pour les photos
    Par invitea74b720a dans le forum Matériel - Hardware
    Réponses: 1
    Dernier message: 27/02/2009, 17h46
  3. [Blanc] Four Miele H4641BPKATNR : une erreur "Code 90".
    Par invited00bdde9 dans le forum Dépannage
    Réponses: 3
    Dernier message: 01/12/2008, 19h07
  4. "disque dur endommagé"
    Par invite6dff2291 dans le forum Matériel - Hardware
    Réponses: 6
    Dernier message: 21/05/2005, 00h17