Ich versuche, ein Problem mit Cabal zu debuggen, wo es nicht funktioniert, wenn ich den Wert der Umgebungsvariablen% USERPROFILE% vor der Ausführung ändere. Ich habe den Fehler zurück zu dem Win32-Aufruf sHGetFolderPath, der auf SIDL_APPDATA verweist, zurückverfolgt, der fehlschlägt, wenn diese Variable geändert wird.Warum führt das Ändern von% USERPROFILE% dazu, dass sHGetFolderPath SIDL_APPDATA fehlschlägt?
Ich bin nicht wirklich sicher, wohin ich von hier aus gehen soll. Warum bricht dieser Anruf? Warum ändert das Ändern von env-var nicht einfach das Benutzerverzeichnis an anderer Stelle? (Ich versuche Cabal sauber von einem Flash-Laufwerk zu arbeiten.)
Zum gleichen Thema, Aufrufe an die gleiche Funktion mit SIDL_PROFILE gibt meine tatsächlichen (angemeldet) Benutzerverzeichnis (C:/Docs und Einstellungen/Ich), obwohl die Konsole, auf der GHCi läuft, jede env-var hatte, die ich mit einem Benutzerverzeichnis darin finden konnte, wurde auf das Flash-Laufwerk zurückgesetzt. Unterbinden diese Win32-Aufrufe die Umgebungsvariablen vollständig?
Als eine Anmerkung, ich fand die beleidigende Methode Anruf über dieses Ticket für Cabal: http://hackage.haskell.org/trac/hackage/ticket/709 Was unter SHGetFolderPath los ist kann dieses Problem helfen. – CodexArcanum