的SHGetFolderPath()32位和64位 [英] SHGetFolderPath() 32 bit vs 64 bit

查看:1093
本文介绍了的SHGetFolderPath()32位和64位的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我使用的的SHGetFolderPath API调用在32位系统中CSIDL_PROGRAM_FILESx86文件夹ID,而不是CSIDL_PROGRAM_FILES ID?

从理论上讲CSIDL_PROGRAM_FILESx86应该映射到 C:\ Program Files文件(x86)的在64位系统,但又有什么映射到一个32位系统,这条路没有按'牛逼存在吗?

解决方案

在不同的场景中的这篇文章在MSDN

向下滚动的言论,FOLDERID_ProgramFiles

  OS应用程序KNOWNFOLDERID默认路径CSIDL等效
32位32位FOLDERID_ProgramFiles的%SystemDrive%\ Program Files文件CSIDL_PROGRAM_FILES
32位32位FOLDERID_ProgramFilesX86的%SystemDrive%\ Program Files文件CSIDL_PROGRAM_FILESX86
32位32位FOLDERID_ProgramFilesX64(不确定)不适用不适用
 

摘要:它将指向的%SystemDrive%\ Program Files文件

What happens if I use SHGetFolderPath api call in a 32 bit system with CSIDL_PROGRAM_FILESx86 folder id instead of the CSIDL_PROGRAM_FILES id?

Theoretically CSIDL_PROGRAM_FILESx86 should map to C:\program files (x86) in a 64 bit system but what does it map to in a 32 bit system where this path doesn't exist?

解决方案

The different scenarios are described in this article on MSDN.

Scroll down to remarks, "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

Summary: It will point to %SystemDrive%\Program Files

这篇关于的SHGetFolderPath()32位和64位的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆