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 :

VS2005 : les manifest


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut VS2005 : les manifest
    Bonjour,
    je viens d'installer le Service Pack 1 pour VS 2005.
    Lors de la création d'un exe, il y a génération de resource manifest pour indiquer à l'exe vers quels runtime s'appuyer.
    Il y a une chose que je ne comprends pas, c'est que dans le manifest généré, j'ai 2 versions de VC80.CRT et VC80.MFC : 8.0.50727.762 et 8.0.50608.0 et une seule pour VC80.ATL : 8.0.50727.762.
    Quelqu'un saurait me dire à quoi cela correspond svp ? On n'a besoin d'utiliser qu'une et UNE seule version des mfc à l'exécution pour un binaire alors que viennent faire ces deux versions de crt et mfc ?????

    Voici le manifest généré par VS pour un exe x ou y :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" 
     
    publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32" name="Microsoft.VC80.MFC" version="8.0.50727.762" processorArchitecture="x86" 
     
    publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32" name="Microsoft.VC80.ATL" version="8.0.50727.762" processorArchitecture="x86" 
     
    publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50608.0" processorArchitecture="x86" 
     
    publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32" name="Microsoft.VC80.MFC" version="8.0.50608.0" processorArchitecture="x86" 
     
    publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
        </dependentAssembly>
      </dependency>
    </assembly>

  2. #2
    Membre chevronné Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Par défaut
    Il ne faut pas confondre les CRT et les MFC.
    MFC c'est la bib. surchargant Win32.
    CRT = C Run-Time Libraries qui contient toutes les fonctions du C en dynamique (printf, itoa ... )
    Pour ne pas avoir les MFC sur le dos il suffit de programmer en Win32. et pour viré la CRT il faut je croit compiler sans l'option /MD du compilateur, mais ton prog risque d'etre plus gros !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    Oui pardon, je me suis mal exprimé, il y a bien une différenciation entre les dll ATL, MFC et CRT ok.
    Mais le fond du problème, c'est que je ne vois pas pourquoi plusieurs versions de ces dll apparaissent dans le manifest. D'ailleurs, en lançant un exe généré à partir d'un manifest comprenant plusieurs version d'une MEME dll (que ça soit ATL, MFC ou CRT), il plante immédiatement.
    C'est donc la loose pour faire des binaires ne linkant pas avec le SP1 !!!
    Dans mon cas précis, les MFC sont utilisées dans le prog donc impossible de faire sans.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    Bon, j'ai créé mes manifest, un pour le SP1, l'autre sans. Je ne les génère pas pendant la compil et basta.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/02/2012, 10h02
  2. Un petit cours sur les manifestes ?
    Par oodini dans le forum Visual C++
    Réponses: 4
    Dernier message: 12/01/2010, 13h58
  3. [C#][VS2005]Récupérer les info d'un certificat avec FX 2.0
    Par virgul dans le forum Windows Forms
    Réponses: 12
    Dernier message: 31/01/2006, 08h52
  4. [VS2005] les DAL pour VS 2005 ?
    Par wonderliza dans le forum Accès aux données
    Réponses: 18
    Dernier message: 16/12/2005, 20h24
  5. les "manifest" pour utiliser le style XP
    Par Mr bizzz dans le forum MFC
    Réponses: 3
    Dernier message: 01/08/2005, 16h28

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