代码之家  ›  专栏  ›  技术社区  ›  RomanM

shgetfolderpath()32位对64位

  •  1
  • RomanM  · 技术社区  · 16 年前

    如果我使用 SHGetFolderPath 在32位系统中使用csidl_program_filesx86文件夹ID而不是csidl_program_files ID调用API?

    理论上csidl_程序文件x86应该映射到 C:\program files (x86) 在64位系统中,但在不存在此路径的32位系统中,它映射到什么?

    2 回复  |  直到 13 年前
        1
  •  9
  •   Magnus Johansson    13 年前

    不同的场景在 this article on 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
    

    摘要:它将指向%SystemDrive%\程序文件

        2
  •  1
  •   Stlopus    13 年前

    试试这个:

    GetEnvironmentVariable("ProgramW6432", szBuffer, nBufferSize);
    

    牛传染性胃肠炎病毒

    推荐文章