我试图调试一个问题,如果在运行之前更改%USERPROFILE%环境变量的值,它将无法工作。我似乎已经追溯到win32调用sHGetFolderPath指向SIDL_APPDATA的错误,如果该变量被修改,似乎会失败。为什么更改%USERPROFILE%会导致sHGetFolderPath SIDL_APPDATA失败?
虽然我不确定要从哪里出发。为什么这个电话打破了?为什么不改变env-var只是指向其他地方的用户目录? (我试图让cabal从闪存驱动器干净地工作。)
在同一主题上,调用与SIDL_PROFILE相同的函数返回我的实际(登录)用户目录(C:/ Docs and Settings /我),即使运行GHCi的控制台有每个env-var我都可以找到一个用户目录,并将其重置为闪存驱动器。那些Win32调用完全忽略了环境变量吗?
作为一个说明,我找到了通过Cabal的这张票的违规方法调用:http://hackage.haskell.org/trac/hackage/ticket/709无论在SHGetFolderPath下发生什么都可能有助于解决这个问题。 – CodexArcanum 2010-11-24 21:52:08