%SystemRoot%等が含まれるパスをフルパスにする一般的な方法は? – プログラミング – Home

%SystemRoot%等が含まれるパ...
 
通知
すべてクリア

[解決済] %SystemRoot%等が含まれるパスをフルパスにする一般的な方法は?


Arutu
 Arutu
(@Arutu)
ゲスト
結合: 18年前
投稿: 24
Topic starter  

いつもお世話になっております。

%SystemRoot%
%SystemDrive%
等の環境変数(?)が混じったパスをドライブ名からのフルパスに変換したいのですが、

自分で文字列を検索しつつ

GetSystemDirectory
GetWindowsDirectory

等を屈指して変換すればよいのでしょうか?
if文やらstrncmpやらを使えば出来そうですが、自作だと信頼性も低いですし面倒です。

つまり、一般的な方法を探しています。

それと、
%SystemRoot%
%SystemDrive%
等の書き方を総称してなにか名前がついていれば教えていただきたいです。(検索がむずい)

よろしくお願いします。


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

過去ログ
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200603/06030061.txt
が参考になりますでしょうか?


返信引用
Arutu
 Arutu
(@Arutu)
ゲスト
結合: 18年前
投稿: 24
Topic starter  

Blueさん返信ありがとうございます。

ExpandEnvironmentStrings
というAPIで解決しました。

文字列を分解したりくっつけたりしなくていいのが楽でいいですね。

TCHAR buf[PATH_MAX];
ExpandEnvironmentStrings( buf, %SystemRoot%\system32\NOTEPAD.EXE, PATH_MAX );

------------------------------------------
buf : [C:\WINDOWS\system32\NOTEPAD.EXE]


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました