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++/CLI Discussion :

Compiler sans le .net 2


Sujet :

C++/CLI

  1. #1
    Membre à l'essai
    Lycéen
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 18
    Points
    18
    Par défaut Compiler sans le .net 2
    Bonjour.
    Je viens de me rendre compte que toutes les applications compilées avec VC8 (dans mon cas une application SDL avec un projet "Application win32) sont dépendandes du .net 2 et çela même si on ne l'utilise pas. Du coup mis a part quelques rares pc l'application ne peux être lancée que sur le pc du dévellopeur ou oblige l'installation du .net 2.
    Est-il possible de générer une application non dépandante du .net 2 avec VC8?
    Merci de votre aide.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ben tout à fait, un EXE natif (non CLR) sera complètement indépendant de .Net...

    Par contre, il aura besoin de la CRT 8...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre à l'essai
    Lycéen
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 18
    Points
    18
    Par défaut
    Le premier problème de ne pas choisir le projet "console win32" c'est que du coup il s'affiche une console derrière mon application SDL.
    Mais sinon est il possible de lier les fichiers du .net 2 à l'application? (comme on le fait avec les MFC par exemple) ou alors le CRT 8? (même si cela est moins bien a cause de ce problème de conseol)

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Si tu as VS Express, je crois que pour avoir un projet natif sans console, il faut créer un projet console d'abord et changer ses options (et son main()) ensuite.
    Pour la CRT 8, tu peux l'utiliser en liaison statique avec les options du projet, mais je pense que le mieux est de la garder en DLL et d'utiliser au besoin les "redistribuables" qui contiennent la CRT 8. (c'est moins lourd que .Net)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre à l'essai
    Lycéen
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 18
    Points
    18
    Par défaut
    Je viens de trouver cette option. Et sinon peux tu dévellopais a propos du CRT 8? Faut il l'installer a part? ou peut on le lier au programme? il suffit d'installer des fichier a l'installeur? ou peut on se le procurer? ...

  6. #6
    Membre à l'essai
    Lycéen
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 18
    Points
    18
    Par défaut
    Je me suis peut eter avancé car en faite j'ai changé dans la rubrique : editeur de lien/système/soussyteme et j'ai changé de consol a application windows (mais du coup je suppose que cela revient a créer directement de projet windows). Donc si quelqu'un sait comment faire disparaitre la console et peut m'expliquer comment installer facillement ou en même temps que mon application la CRT8, je le remercierai.

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Normalement c'est bon, le sous-système est supposé être la seule option à changer.
    Ensuite, tu dois remplacer ton main() par un WinMain() (ou _tWinMain()), la fonction principale d'une application Windows.

    Pour la CRT8, il y a un paquetage dit "residistribuable" qui contient la CRT 8 et diverses autres bibliothèques. Ce paquetage permet d'installer la CRT 8 sur les systèmes qui ne l'ont pas.

    Si tu préfères un truc plus léger, tu peux:
    • Lier statiquement avec la CRT, avec tous les problèmes que cela comporte au niveaux de certaines DLLs)
    • Ou joindre à l'exécutable le contenu du dossier C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT (le paquetage redistribuable de la CRT 8)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    je te conseille ce tuto pour commencer http://arb.developpez.com/vc++/express/

  9. #9
    Membre à l'essai
    Lycéen
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 18
    Points
    18
    Par défaut
    Pour lier staticment les CRT comment faut-il faire? et sinon qu'elles sont les inconvénients liéés à cela?
    (Désolé pour toutes ces questions mais j'aimerais bien progresser ^^)

  10. #10
    Membre à l'essai
    Lycéen
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 18
    Points
    18
    Par défaut
    Je viens d'installer la version "redistribuable" sur un pc vierge de tout environnement de devellopement et ça ne marche toujours pas, j'ai ensuite installé le .net 2 et cela ne marche toujours pas...
    (je met ici un lien vers le projet de base : http://squirrels-cliff.cipher16.ath.cx/Demineur.rar
    Voici l'erreur qu'il m'affiche quand je l'exécute sur un autre pc : "Cette application n'a pu etre démarrer car la configuration de l'application est incorrecte. Réinstaler l'application pourrait résoudre le problème.".

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Tu es bien en Release?

    Edit: Apparemment non... Les bibliothèques debug ne sont pas redistribuables.
    Et ton programme utilise les bibliothèques Debug, comme l'indique son manifeste intégré:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?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.DebugCRT" version="8.0.50608.0" 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>
    </assembly>

    Solution:
    Compile en Release et réessaie sur une machine avec juste les redistribuables: ça devrait marcher...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Membre à l'essai
    Lycéen
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 18
    Points
    18
    Par défaut
    Désolé mais la je commence a perdre courage. Ca doit etre tout bete mais comment fait on pour mettre en release?
    (merci de ne pas perdre patience)

  13. #13
    Membre à l'essai
    Lycéen
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 18
    Points
    18
    Par défaut
    Je viens de trouver, lors du log de compilation il me marque : Configuration*: Release Win32 donc je suppose que c'est bon.
    Mais le problème est toujours le même et ce même en ayant installé les redistribuable de VC 2005 sur l'autre pc.

  14. #14
    Membre à l'essai
    Lycéen
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 18
    Points
    18
    Par défaut
    Je suis confus vous aviez raison : en mode release et avec les dll qu'il faut tout marche.
    Infiniment merci a tous et désolé pour mon étourderie, j'apprend a la vitesse grand V avec vous merci.

    PS : le démineur sera bientot en ligne sur ce site : http://squirrels-cliff.cipher16.ath.cx/

Discussions similaires

  1. telnet et ftp sans modules Net::Telnet et Net::Ftp
    Par jmarclacroix dans le forum Modules
    Réponses: 2
    Dernier message: 05/05/2006, 20h14
  2. MICO - Windows - compiler sans VC++
    Par QUOVADIS dans le forum CORBA
    Réponses: 1
    Dernier message: 03/02/2006, 19h15
  3. Réponses: 19
    Dernier message: 28/01/2005, 09h52
  4. Javadoc Sous eclipse sans le net
    Par asteck dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 18/11/2004, 13h41
  5. Réponses: 3
    Dernier message: 08/04/2004, 13h40

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