(C++)環境変数のパスを展開する
%systemroot% や %programfiles% との環境変数パスをC++で展開する方法です。
Win32 API の ExpandEnvironmentStrings 関数を使えばいいようです。
注意点は %appdata% だと %%appdata%% というように%でエスケープしないといけないという点です。
こんな感じで使います。
WCHAR CheckFileName[1024];swprintf( CheckFileName , _T("%%APPDATA%%\\test.txt") );
WCHAR CheckFileName2[1024];
ExpandEnvironmentStrings( CheckFileName ,CheckFileName2,sizeof( CheckFileName2 ));
なお、各OSの環境変数パスの一覧はVistaとXPにおけるパス関係のユーザ環境変数の相違。 - 片っ端から忘れていけばいいじゃない。できれいにまとめられています。