Existe-t-il une fonction que je puisse appeler dans une application 32 bits qui convertit les chemins qu'elle pense utiliser vers et à partir des chemins qu'elle utilise réellement? (Par exemple, appelez-le pour convertir le chemin d'un dossier dans Program Files en un chemin dans Program Files (x86) ou vice versa lors de l'exécution sur un système 64 bits.) Je dois le faire de sorte que, lorsque l'utilisateur est présenté avec un répertoire dans l'interface graphique (comme lors de la recherche de fichiers ou de répertoires), il voit le vrai répertoire, plutôt que ce que l'application elle-même pense voir.Traduction de chemins 32 bits vers leurs équivalents WOW64
Nous devons prendre en charge Windows 32 bits et 64 bits, donc cela devrait fonctionner dans les deux environnements.
Modifier La nécessité de faire face à WOW64 réside dans le fait que mon application est l'application bootstrap d'un installateur. Par défaut, le produit est installé sous Program Files sur un système 32 bits, tandis que sur un système 64 bits, il est installé sous Program Files (x86). Le dialogue qui permet à l'utilisateur de choisir où installer le produit (y compris sur un disque dur différent si c'est ce qu'il veut ou a besoin); et il doit fonctionner correctement dans les deux environnements. Actuellement, il affiche toujours (et passe en revue) les Program Files, même sur les systèmes 64 bits.
Avez-vous déjà trouvé une bonne solution à cela? Je suis confronté au même dilemme; Je voudrais convertir par exemple un chemin system32 à son équivalent WOW64. –
@Joe: Pas si loin. – RobH
Je sais que c'est vieux, mais la fonction que vous appelez pour obtenir le chemin des fichiers du programme devrait renvoyer le chemin "réel", (c.-à-d. Les fichiers c: \ program (x86) \ whatever). En supposant que vous utilisez SHGetFolderPath, ou la plupart des autres fonctions de l'API Win32. – eselk