我正在尝试调试 Cabal 的一个问题,如果我在运行之前更改 %USERPROFILE% 环境变量的值,它将无法工作。我似乎已经将错误追溯到指向 SIDL_APPDATA 的 win32 调用 sHGetFolderPath,如果修改了该变量,这似乎会失败。
我不确定从这里去哪里。为什么这个电话会中断?为什么不更改该 env-var 只是将用户目录指向其他地方?(我正试图让 cabal 从闪存驱动器中干净地工作。)
在同一主题上,使用 SIDL_PROFILE 调用同一函数会返回我的实际(登录)用户目录(C:/Docs and Settings/Me),即使运行 GHCi 的控制台具有我可以在用户目录中找到的每个 env-var在它重置到闪存驱动器。那些 Win32 调用是否完全忽略了环境变量?