ホームに戻る 初歩のVC++Programming Tipsに戻る

初歩のVC++Programming Tips Win32SDK篇

コマンドライン引数(argc,argv)を使うには


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に戻る