Używam GetEnvironmentString()
, aby pobrać zmienne środowiskowe programu.Jakie są te dziwne zmienne środowiskowe?
Każdy program ma taki wynik w pierwszym:
=::=::\
Nie wiem, co to znaczy?
Oto kod:
LPWCH lpEnvString=GetEnvironmentStringsW();
LPWSTR lpszVariable=(LPWSTR)lpEnvString;
while (*lpszVariable)
{
wprintf(L"%s\n",lpszVariable);
lpszVariable+=wcslen(lpszVariable)+1;
}
FreeEnvironmentStringsW(lpEnvString);
Również jeśli rozpoczniemy wystawianie takich zmiennych chcielibyśmy zobaczyć rzeczy jak:
=::=::\
=C:=C:\Users\username\value
=ExitCode=00000001
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\artik\AppData\Roaming
CommonProgramFiles=C:\Program Files (x86)\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
...
Z drugiej strony, getenv("=ExitCode")
lub getenv("=C:")
zwraca NULL.
Czy możesz podać odpowiednią dokumentację tej "funkcji", na przykład , na przykład getenv()
, ignoruje takie ciągi i jak należy traktować takie wartości?
Pokaż nam kod. – Nick
@Nick Wszystko, co musisz zrobić, to zadzwonić do 'GetEnvironmentStrings()' –
Sądzę, że chciałem sprawdzić, co robił z wartością zwracaną, aby uzyskać dostarczony ciąg znaków. Ponadto - zakładasz, że mam Windows PC :) – Nick