2

我正在尝试将用 C 编写的应用程序从 linux 移植到 windows。

目前,我已经完成了修复缺少 posix 功能等“硬”部分的工作。

该应用程序现在可以在 Windows 上编译、链接和工作(除了 fork() 内容,稍后将替换为 Windows 服务代码)。

我现在遇到的唯一问题是在 MSYS shell 中一切正常(这为我映射了 unix 路径)。

在 MSYS shell 之外它不会工作,因为 ~ 不可用。

我正在寻找在我的#ifdef 内容中设置 Windows 用户主页的最佳方式。

我在某处读到过%USERPROFILE%,但这似乎不起作用

4

2 回答 2

2

我认为您应该使用 SHGetFolderLocation API: http: //msdn.microsoft.com/en-us/library/bb762180%28VS.85%29.aspx 还不够,您甚至应该检索用户文件夹的 ID,但是从上面的文档位置开始,您应该拥有所需的一切。这应该适用于任何 Windows 版本。

于 2011-02-18T10:30:34.230 回答
2

使用SHGetKnownFolderPath(Vista+) 或SHGetFolderPath取决于您的 Windows 版本。

于 2011-02-18T10:37:58.807 回答