17

GetEnvironmentString()プログラムの環境変数を取得するために使用します。

すべてのプログラムは、最初に次のような結果をもたらします。

=::=::\

私はそれが何を意味するのか分かりませんか?

コードは次のとおりです。

LPWCH lpEnvString=GetEnvironmentStringsW();
 LPWSTR lpszVariable=(LPWSTR)lpEnvString;
 while (*lpszVariable)
 {
     wprintf(L"%s\n",lpszVariable);
     lpszVariable+=wcslen(lpszVariable)+1;
 }
 FreeEnvironmentStringsW(lpEnvString);

また、そのような変数のリストを開始すると、次のようなものが表示されます。

=::=::\
=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
...

一方、getenv("=ExitCode")orgetenv("=C:")は NULL を返します。

この「機能」の適切なドキュメントを提供できますか?たとえばgetenv()、そのような文字列を無視し、そのような値をどのように処理する必要がありますか?

4

1 に答える 1

12

これらは、ms-dosディレクトリ処理をエミュレートするcmd.exeの残り物であり、基本的にほとんど使用されず、何よりも古風です。基本的に、ドライブごとの現在のディレクトリを追跡し、他のプロセスに簡単に渡すための環境変数として保持されます。

于 2012-06-05T01:34:08.193 に答える