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

Visual C++ Discussion :

Question utilisation de lib


Sujet :

Visual C++

  1. #1
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut Question utilisation de lib
    Bonjour,
    je dispose d'un fichier .lib construit avec MS VC2008 et j'aimerais l'utiliser dans un project VC6 : est-ce possible ? dois-je m'attendre à des complications ?

    Merci pour toute aide,
    Bonne et heureuse année 2010,
    Lek.

  2. #2
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Si c'est une lib de fonctions C, c'est sûr et certain. Si c'est une lib de fonctions et classes C++, ce n'est pas sûr à cause de la décoration des noms qui n'est pas forcément la même dans Visual C++ 6 et Visual C++ 2008 (et il n'y a pas de solution pour contourner le problème à part convertir la lib VC9 en lib VC6, mais je ne connais pas d'utilitaire pour faire ça).

  3. #3
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut
    Merci, c'est ce que je pensais mais je voulais confirmation.
    Il s'agirait d'une lib C donc pas de souci ;-)

    @+,
    Lek.

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par LEK Voir le message
    Il s'agirait d'une lib C donc pas de souci ;-)
    Ben si, tu peux avoir des soucis... VS2008 a introduit des changements avec ruptures, notamment sur les fonctions standard (existence d'une version sécurisée) et d'autres éléments (comme l'utilisation d'un time_t sur 64 bits). Ces éléments n'existant pas sous VC6, c'est le casse-gueule assuré derrière si tu les as utilisées.

    Donc, ton .LIB peut te poser les problèmes suivants :
    • Impossibilité de "comprendre" le header VS2008 avec VC6 (définitions manquantes).
    • Erreur au link final, requérant la CRT de VS2008 (qui entrera en conflit avec celle de VC6, d'ailleurs).
    • Changement de taille de certains types, ce qui causera des crashs à l'exécution si, par miracle, le link avait pu être fait malgré tout.


    L'inverse (lib VC6 => VS2008) est normalement possible si tu ne tapes pas dans les changements avec rupture (comme le time_t) : la CRT de VS2008 a bien entendu au moins toutes les fonctions de celles de VC6, et doit normalement permettre une édition de liens correcte.

  5. #5
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut
    Merci Mak Lak,
    effectivement les changements dont tu parles me disent quelque chose, mais il me semble que l'on peut rajouter une directive de précompilation pour éviter d'utiliser les changements de crt...
    En tous cas merci pour ta remarque : cela évitera de trop chercher si le cas se présente.

    @+,
    Lek.

  6. #6
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par LEK Voir le message
    il me semble que l'on peut rajouter une directive de précompilation pour éviter d'utiliser les changements de crt...
    En fait, tu éviteras surtout d'utiliser les types et méthodes nouvellement introduites.
    Pour info, tu as la macro _USE_32BIT_TIME_T à définir, et pour les versions sécurisées de la CRT, il faut :
    • Définir _CRT_SECURE_NO_WARNINGS et, éventuellement, _CRT_NONSTDC_NO_WARNINGS pour ne plus avoir les warnings,
    • Ne PAS définir la macro _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES, sinon tu vas activer les versions sécurisées sans même t'en rendre compte.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/04/2007, 11h55
  2. [REGEXP] Question Utilisation fonction replace
    Par calitom dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/03/2007, 17h39
  3. Utiliser une lib C en C#
    Par Crazyfaboo dans le forum C++/CLI
    Réponses: 3
    Dernier message: 11/01/2007, 00h14
  4. [BOOST]Comment utiliser la lib boost.python
    Par Invité dans le forum Bibliothèques
    Réponses: 6
    Dernier message: 30/01/2006, 11h35
  5. Question Utilisation cpu
    Par devdev2003 dans le forum Administration système
    Réponses: 4
    Dernier message: 03/12/2005, 17h01

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