SHGetFolderPath()32位对64位

Rom*_*n M 1 shell 64-bit winapi 32-bit path

如果我在具有CSIDL_PROGRAM_FILESx86文件夹ID而不是CSIDL_PROGRAM_FILES ID的32位系统中使用SHGetFolderPath api调用会发生什么?

理论上CSIDL_PROGRAM_FILESx86应映射到C:\program files (x86)64位系统,但它在32位系统中映射到什么路径不存在?

Mag*_*son 9

MSDN上的这篇文章描述了不同的场景.

向下滚动到备注"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
Run Code Online (Sandbox Code Playgroud)

简介:它将指向%SystemDrive%\ Program Files