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

Windows Discussion :

Créer une application Windows sans .NET


Sujet :

Windows

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 28
    Points : 25
    Points
    25
    Par défaut Créer une application Windows sans .NET
    Bonjour à tous,

    Je cherche à développer un jeu 2D pour Windows. Ayant déjà dans mon projet précédent employé Python, puis ActionScript 3, j'ai décidé de passer au redoutable et redouté C++. Pour ce faire, j'ai appris à utiliser le féroce Visual C++ Express que par ailleurs j'utilise en combinaison avec la SDL.

    Lorsque tout fier de ma première appli avec un rond qui se déplace grâce aux croix directionnelles, j'envoie mon ".exe" à un copain, il se retrouve avec un message d'erreur disant que l'appli n'est pas bien configurée.

    J'ai compris en potassant les forums qu'il lui manquait .NET... Et en regardant chez mes proches non développeurs, je m'aperçois que personne n'a .NET, dont l'installation 3.5 est devenue particulièrement lourde. Par ailleurs, la plupart des jeux s'installent sans .NET...

    Comment faire donc, pour compiler un résultat qui ne requière pas l'installation de .NET pour l'utilisateur. Quitte à ce que la procédure soit plus complexe, ça ne me fait pas peur. La version Express de C++ le peut-elle, ou n'est-elle destinée qu'à pousser les développeurs sur .NET ?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    si ton projet est en C ou C++ (pour C++/CLI il faudra obligatoirement le framework .NET 3.5) alors c'est sûrement un problème de "redistributable".

    Il suffit de demander aux personnes voulant faire fonctionner ton programme d'installer le paquet suivant :

    Microsoft Visual C++ 2008 Redistributable Package (x86)

    ou celui ci :

    Microsoft Visual C++ 2008 Redistributable Package (x64)

    suivant le type du système d'exploitation.

  3. #3
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 386
    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 386
    Points : 20 476
    Points
    20 476
    Par défaut
    Citation Envoyé par erniubo Voir le message
    Lorsque tout fier de ma première appli avec un rond qui se déplace grâce aux croix directionnelles, j'envoie mon ".exe" à un copain, il se retrouve avec un message d'erreur disant que l'appli n'est pas bien configurée.
    Appli mal configurée c'est trop vague pour moi : peut-tu être très précis et donner les messages d'erreurs ?
    Pour utiliser SDL simplement il n'y a pas besoin de .NET.
    .NET n'a rien à voir là-dedans.
    Il faut faire un projet win32 console avec l'option multithreaded dll pour le runtime C

    Q: When using Visual C++ I get "fatal error C1083: Cannot open include file: 'windows.h': No such file or directory"
    A: You need to install the platform SDK, as described here:
    http://msdn.microsoft.com/vstudio/ex...alc/usingpsdk/

    --------------------------------------------------------------------------------
    Q: When using Visual C++ I get link errors relating to MSVCRT.LIB or LIBC
    A: SDL is dynamically linked with the multi-threaded version of the Microsoft Visual C runtime. You need to edit your project settings, go to the C++ language tab, change the listbox to "Code Generation" settings, and then change the runtime library to "Multi-threaded DLL". Make sure you do this with all projects that you link into your application.
    http://www.libsdl.org/faq.php?action...&category=4#41

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 28
    Points : 25
    Points
    25
    Par défaut
    Salut,

    Désolé de n'avoir pas répondu avant : je pense que l'erreur vient de ce que j'ai choisi "projet Win32" au départ au lieu de "Win32 Console". Cette modif faite tout à l'air de marcher...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 28
    Points : 25
    Points
    25
    Par défaut
    Je tente de relancer ce thread : la solution que je pensais avoir trouvé il y a de cela quelques mois s'avère inefficace.

    Je rappelle donc le problème : un jeu 2D utilisant quelques bibliothèques externes multiplateformes : SDL, SDL_Image, et xerces-2.8, ajoutées en dll au projet.

    Pas de problème de fonctionnement sur mes deux PC (l'un sous XP, l'autre Vista) ayant tous deux Microsoft Visual Studio C++ Express 2008 d'installé. Par contre dès que je me rends sur un autre ordi j'obtiens un message d'erreur me disant que "la configuration côte à côte" n'est pas bonne.

    J'ai essayé d'installer sur ces ordis le Microsoft Redistributable 2008 et 2008 SP1, mais rien n'y fait.

    De toute façon, ce n'est pas une solution satisfaisante le jour où j'aurais besoin de distribuer le programme en dehors de mes proches...

    Quelqu'un pourrait-il m'indiquer la source probable du problème et son éventuelle solution ?

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 380
    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 380
    Points : 41 576
    Points
    41 576
    Par défaut
    Tu compiles bien en Release et non en Debug?

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 157
    Points : 12 271
    Points
    12 271
    Par défaut
    Si c'est un projet Win32 (console ou pas), il n'y pas de lien avec .NET.
    Tu n'as vraisemblablement qu'un simple problème de packaging de ton programme.

    Utilises l'utilitaire depends http://www.dependencywalker.com/ pour voir les dll nécéssaires au bon fonctionnement de ton programme. Le plus simple est de le lancer sur une machine où ton programme ne fonctionne pas. En dropant ton exe dans depends, il indiquera en rouge les dll manquantes.
    Je ne sais pas si c'est une des limitations de la version Express, mais VS fournit des types de projets de déploiement qui permettent de générer des programmes d'installations prenant en comptes les dll nécessaires au bon fonctionnement d'un exe généré par un autre projet VS.

    Si sait plus complexe que cela, lance ton exécutable avec différents mode de compatibilité et différents utilisateurs pour vérifier si le comportement ne change pas en fonctions du profile utilisateur ou de l'OS l'exécutant.

    Si cela ne marche toujours pas, regardes dans l'EventLog (L'observateur d'évènement) s'il n'y a pas un message d'erreur pouvant nous mettre sur la voie.

    P.S.: tu fais de .NET un bouc émissaire, l'exécution "side by side" fait partie de l'OS, pas du Framework .NET.

    Note : Le Framework .NET 3.0 est de base avec Vista et je crois que le SP2 ou SP3 de XP l'installe une version du Framework. La base installée du Framework .NET n'est pas un problème

    Note2 : M$ fournit, gratuitement selon certain critères, un SDK pour le développement de jeux sous .NET : XNA.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 28
    Points : 25
    Points
    25
    Par défaut
    Tu compiles bien en Release et non en Debug?
    Non, en debug. Je pensais pas que ça ait de l'influence. Je vais essayer en release.

    Utilises l'utilitaire depends http://www.dependencywalker.com/ pour voir les dll nécéssaires au bon fonctionnement de ton programme.
    J'essaierai ça aussi...

    Le Framework .NET 3.0 est de base avec Vista et je crois que le SP2 ou SP3 de XP l'installe une version du Framework. La base installée du Framework .NET n'est pas un problème
    Sauf que le problème de config "side by side" est systématique quel que soit l'OS Windows, quel que soit l'ordi... Et que la voix des forums à l'air de se plaindre toujours de .NET et de ses redistributables...

    M$ fournit, gratuitement selon certain critères, un SDK pour le développement de jeux sous .NET : XNA.
    Je préfère quand même, par philosophie, conserver une version Linux de mon jeu... Ce qui ne sera évidemment pas possible avec XNA.

    Quoiqu'il en soit j'ai du test en perspective et je reviens quand j'ai du nouveau et du concret.

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 380
    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 380
    Points : 41 576
    Points
    41 576
    Par défaut
    Citation Envoyé par erniubo Voir le message
    Non, en debug. Je pensais pas que ça ait de l'influence. Je vais essayer en release.
    Ça en a. Un programme compilé en Debug utilise la version Debug de la CRT, dont la distribution est interdite par la license de Visual.

    En clair, un programme ne doit être distribué qu'en Release.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 28
    Points : 25
    Points
    25
    Par défaut
    C'est bon !

    Le problème venait en effet du debug... Comme toujours, ça paraît logique après coup, mais le nez dans le guidon, on n'y pense pas.

    Problème définitivement résolu donc, et qui ne fait que souligner tous ceux qui restent encore...

    Merci beaucoup pour votre aide et à bientôt, donc, pour une autre question !

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

Discussions similaires

  1. Deploiement d'une application windows vb.net avec visual studio
    Par developpment dans le forum Visual Studio
    Réponses: 1
    Dernier message: 03/01/2012, 19h48
  2. Réponses: 25
    Dernier message: 15/12/2010, 14h49
  3. Créer l'installation d'une application windows VB.NET
    Par insane_80 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 25/06/2009, 10h49
  4. créer une application windows
    Par Msysteme dans le forum VC++ .NET
    Réponses: 0
    Dernier message: 28/01/2009, 10h42

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