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

VB.NET Discussion :

Développement 32 bits sur système 64 bits


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de vg-matrix
    Inscrit en
    Février 2007
    Messages
    1 220
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Février 2007
    Messages : 1 220
    Par défaut Développement 32 bits sur système 64 bits
    tout le monde, je suis nouveau sur la plateforme .NET avec Visual Basic Express mais je me suis mélangé les pédales. J'ai installé Visual Basic Express 2008 sp1 sur mon pc (processeur Pentium Dual Core x64 avec Xp Pro 32 bits) mais j'aimerais que les applications soient compilées pour les systèmes 32 bits. Mon deuxième problème est le type de la base de données à installer sans oublier que je développe exclusivement pour les systèmes 32 bits parce j'ai installé Sql server management 2005 mais il ne détecte aucune instance de Sql compact 3.5 sp1 ou sql server express 2008. Du coup j'arrive pas à me connecter à une base de données.

    Que dois-je faire? Aidez-moi s'il vous plaît

  2. #2
    Membre confirmé
    Profil pro
    Ostéopathe
    Inscrit en
    Juillet 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ostéopathe

    Informations forums :
    Inscription : Juillet 2010
    Messages : 26
    Par défaut
    Salut je ne peux t'aider que pour le type de plateforme pour laquelle ton programme est compilé :
    • Lorsque ton projet est ouvert, dans l'explorateur de solution tu double clique sur l'élément qui s'appelle "My Project"
    • Tu sélectionnes l'onglet "Compiler" à gauche
    • Parmis tous les éléments de cet onglet, tout en bas à gauche cliques sur le bouton "Options avancées de compilation"
    • Et là dans la combobox du milieu de la partie inférieure de la fenêtre tu sélectionnes x86 pour les plateformes 32 bits


    (petite précision, je suis souc visual studio 2008, l'interface est peut être différente de celle de Visual Basic Express 2008)

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    ou sinon laisser anycpu, ca fonctionne en x86 sur un x86 et en x64 sur un os x64, donc c'est optimisé ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre émérite Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Par défaut
    Ah non, le AnyCPU n'est pas optimisé... C'est juste portable et donc plus pratique. Mais ca n'est pas plus optimisé qu'un développement ciblant une architecture précise, j'aurais même tendance a dire le contraire. De plus ca amène également beaucoup de limitations qu'il faut parfois prendre en compte.
    Par exemple, développer un plugin pour une application 32bit ne peut pas être fait en AnyCPU, car sur une machine 64Bit il se chargera en tant que code 64bit et donc provoquera une BadImageFormatException alors que s'il cible le 32bit il se chargera sans encombre.
    Sur le même principe, développer SUR une machine 64bits empêche certaines fonctions du debuggueur de Visual Studio. En effet, comme celui-ci est écrit en 32bit, il ne peut pas débugguer un code 64bit avec toutes les fonctionnalités (par exemple, la fonction "Modifier & Continuer" ne peut être utilisée).

    Pour définir la cible d'un projet (car il faut le faire projet par projet et non pas sur la solution) il faut aller dans les propriétés et changer la cible pour "x86".
    Attention, ne pas se laisser abuser par la double liste déroulante (Debug/Release + AnyCpu/x86/x64), celle-ci ne donne que le nom d'une configuration et non pas la configuration elle-même. Autrement dit, sélectionner x64 dans cette liste n'assure en rien que le projet sera généré pour du x64.
    En bref, la méthode de mrtrampo est la bonne, tout autre est mauvaise.

    Quand au problème de SQL, navré mais j'en ai aucune foutue idée, déjà que taper 2 requêtes avec une pauvre jointure ca me saoul, alors l'administration de ces serveur ...

  5. #5
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    +1 ctxnop

    J'ai lu rapidement le topic, et je te rajouterais ce lien vers un ancien topic, un peu dans le même genre de problème : ici.

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Citation Envoyé par ctxnop Voir le message
    Ah non, le AnyCPU n'est pas optimisé...

    !?

    le anycpu permet d'optimiser l'exécution du programme

    si tu le compiles en x86 et que tu l'exécutes sur du x64 il marchera en x86
    mais compilé en anycpu, la compilation du JIT sur un OS x64 sera en x64, et donc ne me dit pas qu'on y gagne pas un peu ...

    après oui, développer en x86 permet de débugger ^^ mais rien n'empêche de remettre anycpu pour déployer
    (d'ailleurs vs2010 corrige t il cela ?)



    @vg-matrix
    rien compris à ton problème de base de données ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre émérite Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Par défaut
    Non pas du tout.
    Ce qui permet d'optimiser le programme c'est de cocher les options d'optimisations (pré-cochées en profile release).
    Quelle que soit la cible, la compilation génère du bytecode MSIL. En théorie, le même, puisque destiné à une machine virtuelle normalisée. Donc le x86 n'est pas plus optimisé que le AnyCPU, mais AnyCPU n'est pas non plus plus optimisé que x86.
    Par contre, cibler AnyCPU fait que l'exécutable se charge en tant que processus "natif" (ici natif est au sens que sur machine 32bit il se charge en 32bit et sur une 64bit il se charge en 64bit, rien a voir avec l'assembleur ou je ne sais quoi d'autre).
    Cibler x64 fera que l'exécutable se charge systématiquement en tant que processus 64bit, ce qui le rend inutilisable sur machine 32bit.
    Cibler x86 fera que l'exécutable se charge systématiquement en tant que processus 32bit, ce qui fait qu'il tourne normalement sur machine 32bit (aussi bien que le x64 sur 64bit) mais il tournera en multilib sur une machine 64bit. Pour autant que je sache ca ne ralenti pas l'exécution du programme.
    Et si jamais ca le fait, ca ralentit beaucoup moins que le passage par la machine virtuelle .Net, si tu en est à vouloir compter cette "optimisation" il est temps de songer à coder en C++, en C voire en assembleur.

    --Edit
    Au fait, oui on peut tout à fait mettre AnyCPU pour déployer. Mais ce n'est pas toujours faisable. Par exemple moi, dans mon boulot, le programme sur lequel je travail est amené à être installé sur tout type de bécanne et donc aussi bien du 32bits que du 64bits. En conséquence on pense naturellement qu'il faut cibler le AnyCPU. Sauf que non, ca ne marche pas. Pourquoi ? Parce que certains composants tiers ont été compilés en x86 pour des raisons plus ou moins valables (j'entend par la qu'il nous est arrivé de demander une version AnyCPU et qu'on ne l'a pas toujours obtenue car parfois il ne peuvent pas changer la cible).
    En conséquence on ne peut pas utiliser le AnyCPU car les composants x86 ne se chargent pas sur une machine 64bit. Le AppDomain étant x64 il refuse de charger en x86.
    --Edit

    Et pour répondre a ta question : non, Visual Studio 2010 souffre toujours des même problèmes. "Pire", la cible par défaut de Visual Studio est maintenant le x86 et non plus le AnyCPU, la raison invoquée est justement les problèmes en Debug. Il faut savoir que les nouveautés du debuggueur de 2010 (qui sont tout de meme une grande partie des keyfeatures) sont toutes inutilisable en 64bit.

Discussions similaires

  1. compilation 32 bits sur machine 64 bits
    Par meufeu dans le forum C++
    Réponses: 2
    Dernier message: 27/08/2009, 20h36
  2. Mémoire dispo pour appli 32 bits sur systeme 64 bits
    Par qdaemon_fr dans le forum Windows
    Réponses: 1
    Dernier message: 26/05/2009, 06h49
  3. Réponses: 5
    Dernier message: 29/04/2009, 07h49
  4. Mémoire de plus de 3 Go sur système 32 bits
    Par krfa1 dans le forum Composants
    Réponses: 5
    Dernier message: 11/11/2008, 07h09
  5. Installer Xp 32 bits sur Xp 64 bits (raid1)
    Par x2thez dans le forum Périphériques
    Réponses: 6
    Dernier message: 06/02/2008, 18h20

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