簡體   English   中英

x64位Windows上的ExpandEnvironmentStrings(…)正在將%programfiles%擴展到x86路徑

[英]ExpandEnvironmentStrings( … ) on a x64 bit windows is expanding %programfiles% to x86 path

我有一個在Windows 10的x64版本上運行的x86應用程序。

在我的應用程序中,我使用ExpandEnvironmentStrings(...)來擴展給定值的用戶。

但是,當變量為%programfiles%時,它將擴展為C:\\ Program Files(x86)

我需要做一些特殊的事情來獲得一個x86應用程序來正確擴展程序文件變量嗎?

注意 :當我直接在資源管理器中使用%programfiles%時 ,它會正確擴展為C:\\ Program Files

我正在使用Visual Studio 2015進行開發。

當32位應用程序擴展環境變量引用%ProgramFiles% ,它總是獲取默認情況下包含32位應用程序程序文件夾的文件夾路徑。 但是,此環境變量引用擴展到文件夾路徑,該路徑默認情況下從64位進程(例如Windows資源管理器)擴展時包含64位應用程序的程序文件夾。

必須使用環境變量引用%ProgramW6432%來通過32位進程獲取64位應用程序的程序文件文件夾路徑。

這是由Microsoft在WOW64實現詳細信息中記錄的

可以通過打開64位和32位命令提示符來自己檢查此問題–鍵入%SystemRoot%\\SysWoW64\\cmd.exe在64位系統上打開32位命令提示符。 然后在兩個命令提示符窗口中執行命令,以set環境變量的完整列表及其當前值,或者僅set prog以表示不區分大小寫的環境變量列表,名稱及其值以字符串prog開頭。

另請參閱帶有預定義的Windows環境變量的 Wikipedia文章。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM