我正在尝试将用C编写的应用程序从linux移植到Windows。
目前我已完成修复missing posix features之类的“硬”部分。
应用程序现在在Windows上编译,链接和工作(除了fork()之外的东西,稍后将用windows服务代码替换)。
我现在唯一的问题是在MSYS shell中它一切正常(这为我映射了unix路径)。
在MSYS shell之外它不起作用,因为〜不可用。
我正在寻找在我的#ifdef内设置windows用户的最好方法。
我在某处读过%USERPROFILE%
,但work似乎没有。
答案 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版本。