J'espère que vous avez maintenant vu ma fonctionnalité sur Windows 64 bits dans le dernier numéro dePC Pro. Et peut-être avez-vous tiré un certain réconfort de mes assurances simples que vous n’avez pas à vous soucier trop de la compatibilité des applications. Presque tous les logiciels 32 bits modernes doivent s'installer et fonctionner parfaitement sur une édition 64 bits de Windows.
Eh bien, bien sûr, chaque fois que vous écrivez quelque chose comme ça, vous demandez des ennuis.
no puedo hacer de esta tu xbox casera
Effectivement, au moment où notre numéro de septembre atterrissait dans les kiosques à journaux, je découvrais quePC ProLe client CMS interne du système ne fonctionnait que sur Windows 32 bits, vous l’avez deviné. Essayer de créer une nouvelle critique à partir de mon bureau 64 bits n'a généré qu'une erreur obscure concernant une fabrique de classes COM manquante.
Faire voler les drapeaux
Un peu de fouille a mis au jour le problème. Un développeur méchant avait écrit une application .NET 32 bits parfaitement valide, mais avait négligé de la marquer comme un code spécifiquement 32 bits. Windows 64 bits l'exécutait donc en mode 64 bits, provoquant des erreurs lorsque le logiciel ne pouvait pas accéder aux ressources système 32 bits attendues.
Heureusement, c'est un problème facile à résoudre. Microsoft CorFlags L'outil de ligne de commande - qui fait partie du .NET Framework - vous permet de modifier les indicateurs d'en-tête sur les fichiers exécutables, y compris celui qui spécifie quand une application doit être exécutée en mode 32 bits. La définition de cet indicateur pour notre application de base de données était une simple question de saisie CorFlags application.exe / 32 bits +
Etvoilà- une application 32 bits fonctionnant parfaitement sous Windows 64 bits. Ça vaut le coup d'essayer si jamais vous rencontrez un problème similaire.
¿Por qué mis fotos no se cargan en Google Photos?
Quel dossier Program Files?
Pendant que je suis sur le sujet, voici un problème connexe que nous avons rencontré lorsque nous avons commencé à examiner les PC exécutant Vista 64 bits. Dans ce cas, le logiciel gênant n'était autre que lePC Prosuite de référence du monde réel. Tout semblait s'installer parfaitement, mais lorsque nous avons lancé les tests, nous avons reçu des erreurs de ressources non trouvées.
Je me suis mis à tracer le problème avec l’aide de l’indispensable de SysInternals Moniteur de processus l'utilité, et encore une fois, l'explication s'est avérée heureusement simple (si simple, en fait, que je me sentais un peu stupide de ne pas l'avoir résolue moi-même).
Divers fichiers n'ont pas été trouvés car sous Windows 64 bits, le dossier Program Files est réservé aux applications 64 bits uniquement. Les programmes 32 bits s'installent dans un dossier nommé Program Files (x86). Nos scripts de test incluaient des chemins codés en dur qui échouaient car nos applications 32 bits n'étaient pas à leur emplacement habituel.
no se puede acceder al menú de inicio de Windows 10
Si vous rencontrez un problème comme celui-ci, vous pouvez facilement le résoudre en supprimant les références explicites à C: Program Files et en utilisant% ProgramFiles% à la place (cette variable d'environnement intelligente devrait se résoudre en Program Files ou Program Files (x86) en fonction de si le processus qui l'appelle est 64 bits ou 32 bits). Si vous ne parvenez pas à accéder à la source pour modifier les chemins, une solution de contournement rapide et sale consiste à copier manuellement vos fichiers 32 bits dans Program Files. Une fois que j'ai fait cela, nos benchmarks se sont déroulés sans accroc.
Alors voilà: les applications 32 bitsfaisfonctionnent sur Windows 64 bits… mais parfois vous devez contourner quelques hypothèses de programmeur pour les faire fonctionner!