m_lpCmdLine の使い方について – プログラミング – Home

m_lpCmdLine の使い方につい...
 
通知
すべてクリア

m_lpCmdLine の使い方について


kudou
 kudou
(@kudou)
ゲスト
結合: 20年前
投稿: 5
Topic starter  

WinXP sp2 VC++6.0

MFC プログラムで第二引数を取得したいのですが、
上手くいきません。

引数はvisualstadioプログラム引数で設定しています。

// コマンド引数を取得
if(m_lpCmdLine[0] == NULL){ // 引数なし

} else {// 引数あり
  CString Str = m_lpCmdLine[1];
}


引用解決済
トピックタグ
ori
 ori
(@ori)
ゲスト
結合: 20年前
投稿: 3
 

m_lpCmdLineはargvみたいに引数毎に分割されてないので
CCommandLineInfo等使って解析しなければなりません。


返信引用
kudou
 kudou
(@kudou)
ゲスト
結合: 20年前
投稿: 5
Topic starter  

VCのプログラム引数を
Debug\XXXXX.exe C:\Documents and Settings\test.txt
と設定した場合、
C:\Documents and Settings\test.txtを取得したいのですが、
CCommandLineInfoを利用して解析できるのでしょうか_?
教えていただけませんか?


返信引用
ゆう
 ゆう
(@ゆう)
ゲスト
結合: 23年前
投稿: 114
 

普通に
CString Str = m_lpCmdLine ;
で代入できませんか?

::PathUnquoteSpaces(m_lpCmdLine) ;
なんてしておいた方が良いかもしれません。


返信引用
kudou
 kudou
(@kudou)
ゲスト
結合: 20年前
投稿: 5
Topic starter  

ゆう様
CString Str = m_lpCmdLine ;
でとるとプログラム引数の全て
Debug\XXXXX.exe C:\Documents and Settings\test.txt
を取得していまいます。

Strでとった全ての引数は、自分で分別しなければいけないのでしょうか?
Debug\XXXXX.exe
C:\Documents and Settings\test.txt
上記の二つを別に取得したいです。


返信引用
ゆう
 ゆう
(@ゆう)
ゲスト
結合: 23年前
投稿: 114
 

私の環境(win2000 VC++6.0)では
C:\Documents and Settings\test.txtだけが取得できており、
Debug\XXXXX.exe はついてきません。
環境に依存するんですかね。
win98では"はついてきませんでしたから。


返信引用
ゆう
 ゆう
(@ゆう)
ゲスト
結合: 23年前
投稿: 114
 

oriさんがいうようにするなら、こんな感じでしょうか。

CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
if(cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew)
{
Str = cmdInfo.m_strFileName ;
}


返信引用
ゆう
 ゆう
(@ゆう)
ゲスト
結合: 23年前
投稿: 114
 

>CCommandLineInfo cmdInfo;
> ParseCommandLine(cmdInfo);
> if(cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew)
> {
> Str = cmdInfo.m_strFileName ;
> }
まちがいです。
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
if(cmdInfo.m_nShellCommand == CCommandLineInfo::FileOpen)
{
Str = cmdInfo.m_strFileName ;
}


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

単に
>Debug\XXXXX.exe C:\Documents and Settings\test.txt
の指定の仕方が悪いのでは?
Debug\XXXXX.exe C:\Documents and Settings\test.txt
にしてあげないといけないとか。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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