x64 位 windows 上的 ExpandEnvironmentStrings( ... ) 正在将 %programfiles% 扩展到 x86 路径
ExpandEnvironmentStrings( ... ) on a x64 bit windows is expanding %programfiles% to x86 path
我在 x64 版本的 Windows 10 上有一个 x86 应用程序 运行。
在我的应用中,我使用 ExpandEnvironmentStrings( ... ) 来扩展用户给定的值。
但是当变量是 %programfiles% 时它被扩展到 C:\Program Files (x86)
我需要做一些特别的事情来让 x86 应用程序正确扩展程序文件变量吗?
NB:当我直接在资源管理器中使用 %programfiles% 时,它会正确扩展到 C:\Program文件.
我正在 Visual Studio 2015 年开发。
当32位应用程序扩展环境变量引用%ProgramFiles%
时,它总是获取默认包含32位应用程序程序文件夹的文件夹路径。但是这个环境变量引用扩展到文件夹路径,当从 64 位进程(例如 Windows Explorer)扩展时,默认情况下包含 64 位应用程序的程序文件夹。
32 位进程必须使用环境变量引用 %ProgramW6432%
获取 64 位应用程序的程序文件文件夹路径。
Microsoft 在 WOW64 Implementation Details.
中对此进行了记录
可以通过打开 64 位和 32 位命令提示符自行检查 - 输入 %SystemRoot%\SysWoW64\cmd.exe
以在 64 位系统上打开 32 位命令提示符。然后在命令提示符 windows 中执行命令 set
以获得环境变量及其当前值的完整列表,或者仅执行 set prog
以获取不区分大小写的环境变量列表,字符串 prog
的名称及其值。
另请参阅包含预定义 Windows Environment Variables 的维基百科文章。
我在 x64 版本的 Windows 10 上有一个 x86 应用程序 运行。
在我的应用中,我使用 ExpandEnvironmentStrings( ... ) 来扩展用户给定的值。
但是当变量是 %programfiles% 时它被扩展到 C:\Program Files (x86)
我需要做一些特别的事情来让 x86 应用程序正确扩展程序文件变量吗?
NB:当我直接在资源管理器中使用 %programfiles% 时,它会正确扩展到 C:\Program文件.
我正在 Visual Studio 2015 年开发。
当32位应用程序扩展环境变量引用%ProgramFiles%
时,它总是获取默认包含32位应用程序程序文件夹的文件夹路径。但是这个环境变量引用扩展到文件夹路径,当从 64 位进程(例如 Windows Explorer)扩展时,默认情况下包含 64 位应用程序的程序文件夹。
32 位进程必须使用环境变量引用 %ProgramW6432%
获取 64 位应用程序的程序文件文件夹路径。
Microsoft 在 WOW64 Implementation Details.
中对此进行了记录可以通过打开 64 位和 32 位命令提示符自行检查 - 输入 %SystemRoot%\SysWoW64\cmd.exe
以在 64 位系统上打开 32 位命令提示符。然后在命令提示符 windows 中执行命令 set
以获得环境变量及其当前值的完整列表,或者仅执行 set prog
以获取不区分大小写的环境变量列表,字符串 prog
的名称及其值。
另请参阅包含预定义 Windows Environment Variables 的维基百科文章。