2

在 64 位系统上运行的 32 位应用程序是否可以访问 64 位应用程序的默认文件夹?

例如,在 32 位应用程序中使用带有 CSIDL_PROGRAM_FILES 的 SHGetSpecialFolderPath 会返回“C:\Program Files (x86)” 如果从 64 位应用程序中使用相同的调用,我会得到“C:\Program Files”。有没有办法获得来自 32 位应用程序的“C:\Program Files”?

这里的一个相关问题对SHGetFolderPath() 32 位与 64 位没有帮助,也没有在调用 SHGetSpecialFolderPath 之前抑制 wow64 文件系统重定向

4

2 回答 2

2

回答我自己的问题,似乎使用 SHGetSpecialFolderPath 是不可能的。在 Vista 及更高版本中,使用替换函数 SHGetKnownFolderPath 允许它使用 FOLDERID_ProgramFilesX64

于 2009-08-20T11:00:27.743 回答
1

我相信拥有单独文件夹的全部原因是为了防止 32 位和 64 位应用程序混合使用。因此,您不需要从您的应用程序中查看属于不同位数的文件夹。

您可能有一个很好的理由,但我在您的问题中没有看到任何已发布的理由。

于 2009-08-20T11:00:55.280 回答