Command Line の取り込み

C:\DATA\Cpp\BAT\Console>CommandLine abc 123 "X Y Z"
0 CommandLine
1 abc
2 123
3 X Y Z

Command Line から渡されたパラメータを取得します。

前田稔の超初心者のプログラム入門

プログラムの説明

  1. コマンドラインから起動するときに、パラメータを設定することが出来ます。
    【コマンドラインの例】
    C:\DATA\Cpp\BAT\Console>CommandLine abc 123 "X Y Z"
    CommandLine.exe が起動するプログラムで、abc 123 "X Y Z" がパラメータです。
  2. コマンドラインから渡されたパラメータは main() 関数のパラメータとして受け取ります。
    int argc がパラメータの個数で、char* argv[] がパラメータの配列です。
    パラメータは空白で区切られ、文字列の配列として渡されます。
    文字列の中に空白を含むときは " " で囲って下さい。
    /*★ Command Line    前田 稔 ★*/
    #include <stdio.h>
    #include <conio.h>
    
    int main(int argc, char* argv[])
    {
        for(int i=0; i<argc; i++)
            printf("%d %s\n", i,argv[i]);
        _getch();
        return(0);
    }
    
  3. CommandLine.exe にファイルをドラッグ&ドロップして起動することも出来ます。
    ウインドウエクスプローラーを開いて CommandLine.exe を表示して下さい。
    適当なファイルを選択して CommandLine.exe にドラッグ&ドロップするとファイル名が表示されます。
    コンソールウインドウがすぐ消えて確認出来ないことがあるので _getch(); を利用しています。
  4. コマンドラインにファイル名が指定されていないときに、コンソールからタイプ入力する例です。
    char    name[256];
    
    int  main(int argc, char* argv[])
    {
        if (argc<=1)
        {   puts("ファイル名を入力して下さい  ?");
            gets((char *)name);
        }
    
  5. C# でも同様のプログラム Command Line 引数 を作成しています。
    リンクがエラーになるときは「前田稔の超初心者のプログラム入門」から辿って下さい。
    C++ ではプログラム名(CommandLine)から始まりますが、C# では一番目のパラメータから始まります。

【プログラムのコピー】
CommandLine.exe をコピーして、別のフォルダーから起動するときは CommandLine.exe.manifest も一緒にコピーして下さい。
.manifest が無いと次のエラーが表示されます。
MSVCR80.dll がないため、プログラムを開始できません。
この場合 MSVCR80.dll を用意しても起動出来ないようです。

また CommandLine.exe だけをコピーして、エラーが表示された後で CommandLine.exe.manifest を追加コピーしても動きませんでした。
エラーを起こしたときの状態がキャッシュされているからでしょうか?

ネイティブモードでコンパイルすると .manifest は不要で .exe だけで動作します。
UnManeged Mode(ネイティブモード)のプログラムサイズは Maneged に比べて約2倍ぐらいになるようです。

超初心者のプログラム入門(C/C++)