C中的Windows用户主文件夹(MinGW)

时间:2011-02-18 10:17:50

标签: c windows mingw msys

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

目前我已完成修复missing posix features之类的“硬”部分。

应用程序现在在Windows上编译,链接和工作(除了fork()之外的东西,稍后将用windows服务代码替换)。

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

在MSYS shell之外它不起作用,因为〜不可用。

我正在寻找在我的#ifdef内设置windows用户的最好方法。

我在某处读过%USERPROFILE%,但work似乎没有。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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