ホームに戻る 初歩のVC++Programming Tipsに戻る
cのmain関数でおなじみのargc,argvはコマンドライン引数を取り込むのにとても便利です。しかしWinMain関数ではLPSTR lpszCmdLineでコマンドライン引数の文字列を取得することはできますが、argc,argvのように引数の解析まではやってくれません。
VC++5.0では__argcと__argvを使うことができます(アンダースコアは2つ)。
""でかこんだスペースを含む長いファイル名の解析もできます。
また、この変数はWinMain以外の関数内でも使用できます。
その他はmain関数のargc,argvと同じように使えます(多分)。
ただし、ファイルをドロップしたときに引数として得られるファイル名はすべて短いファイル名(例:HTMLER~1.HTM)になってしまいます。
長いファイル名に変換する方法はつぎの短いファイル名を長いファイル名に変換するにはで説明します。
以下は使用例です。
/******************************************************************************
title : tips3 - __argc,__argcvを使う for win95/NT4.0
compiler : VC++ 5.0
******************************************************************************/
#include<windows.h>
int WINAPI WinMain(HINSTANCE hInstCurrent, HINSTANCE hinstPrevious, LPSTR lpszCmdLine, int nCmdShow)
{
char szStrTmp[1024+1];
int i;
wsprintf(szStrTmp,"コマンドライン引数の数 %d",__argc);
MessageBox(NULL,szStrTmp,"tips3",MB_OK);
for(i=0; i<__argc; i++)
{
wsprintf(szStrTmp,"第%lu引数\n%s",i,__argv[i]);
MessageBox(NULL,szStrTmp,"tips3",MB_OK);
}
return 0;
}
copyright (c) 1998-2000 by T-Matsuo
ホームに戻る 初歩のVC++Programming Tipsに戻る