SHGetFolderPath()32位对64位
题
如果我使用 SHGetFolderPath api在具有CSIDL_PROGRAM_FILESx86文件夹ID而不是CSIDL_PROGRAM_FILES ID的32位系统中调用?
理论上CSIDL_PROGRAM_FILESx86应该映射到64位系统中的 C:\ program files(x86)
,但是在这个路径不存在的32位系统中它映射到了什么?
解决方案
向下滚动至备注,“FOLDERID_ProgramFiles”
OS Application KNOWNFOLDERID Default Path CSIDL Equivalent 32 bit 32 bit FOLDERID_ProgramFiles %SystemDrive%\Program Files CSIDL_PROGRAM_FILES 32 bit 32 bit FOLDERID_ProgramFilesX86 %SystemDrive%\Program Files CSIDL_PROGRAM_FILESX86 32 bit 32 bit FOLDERID_ProgramFilesX64 (undefined) Not applicable Not applicable
摘要:它将指向%SystemDrive%\ Program Files
其他提示
试试这个:
GetEnvironmentVariable("ProgramW6432", szBuffer, nBufferSize);
YMMV
不隶属于 StackOverflow