【发布时间】:2011-02-18 10:17:49
【问题描述】:
我正在尝试将用 C 编写的应用程序从 linux 移植到 windows。
目前我已经修复了诸如missing posix features 之类的“硬”部分。
应用程序现在可以在 Windows 上编译、链接和工作(除了 fork() 东西,稍后将替换为 Windows 服务代码)。
我现在唯一遇到的问题是在 MSYS shell 中一切正常(这为我映射了 unix 路径)。
在 MSYS shell 之外它无法工作,因为 ~ 不可用。
我正在寻找在我的#ifdef 内容中设置 Windows 用户主页的最佳方式。
我在某处读到过%USERPROFILE%,但work 似乎没有。
【问题讨论】:
-
%USERPROFILE%应该是正确的,至少在 Windows 7 上是正确的。在其他操作系统上可能会有所不同。 -
听起来很奇怪,因为环境变量 USERPROFILE 应该包含主文件夹。
-
%USERPROFILE%工作正常,但在程序中您应该使用SHGetFolderLocation或其朋友之一。如果你不能让%USERPROFILE%工作,那么你做错了。 -
@the JinX 在我看来,您似乎对 Windows 了解不多,并且对 Windows 大喊大叫,而实际上您应该专注于将自己对这个特定平台的了解提升到新的水平。
-
Windows SUA 与 POSIX 兼容 - 常规 Windows 不兼容,也不会尝试这样做。