>> WINAPI入門トップに戻る
今回はコマンドライン引数の取得について説明します。
コンソールアプリケーションのコマンドライン引数については、
main関数のchar型ポインタの配列から取得する必要がありましたが、
ウィンドウアプリケーションの場合はすごいシンプルです。
最初のWinMain関数の、
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
lpCmdLineの部分がそれを表しています。
もしスペースで区切って引数を指定した場合も、それはスペースを含む一つの文字列として表示されます。
単純にMessageBox関数として表示するようにコーディングしてみてください。
その後実行ファイルに何かファイルをドラッグして実行すると、
そのドラッグしたファイルのフルパスが表示されます。
もちろんコマンドプロンプトから、引数を指定して実行した場合も、
その文字列が表示されることになります。
一つの文字列なので内部で自分で、パラメータを分割する必要があるんですね。
もう一つコマンドライン引数を取得する方法として、GetCommandLine関数を使います。
引数はありません。
実行すると、自分の実行ファイルのフルパスを含んで、コマンドライン引数の
文字列のポインタを返します。
MessageBox(NULL,GetCommandLine(),NULL,MB_OK);
と書いてコンパイルし、実行ファイルにファイルをドラッグして実行してみてください。
今度はこの実行ファイル自身のフルパスとともに、ドラッグしたファイルのフルパスが表示されたと思います。
この関数では実行ファイル自身のフルパスを含むところだけが、
先程の方法と違うんですね。
こちらの方がコンソールアプリケーションのコマンドライン引数の取得に少し似ています。
どちらを使うかは自由です。
実行ファイルのフルパスを必要としなければ、前者の方法の方が簡単で良いと思います。
次回はビープ音の再生について説明します。
>> 【ビープ音の再生】に進む
>> WINAPI入門トップに戻る
コマンドライン引数の取得
コンソールアプリケーションのコマンドライン引数については、
main関数のchar型ポインタの配列から取得する必要がありましたが、
ウィンドウアプリケーションの場合はすごいシンプルです。
最初のWinMain関数の、
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
lpCmdLineの部分がそれを表しています。
もしスペースで区切って引数を指定した場合も、それはスペースを含む一つの文字列として表示されます。
単純にMessageBox関数として表示するようにコーディングしてみてください。
その後実行ファイルに何かファイルをドラッグして実行すると、
そのドラッグしたファイルのフルパスが表示されます。
もちろんコマンドプロンプトから、引数を指定して実行した場合も、
その文字列が表示されることになります。
一つの文字列なので内部で自分で、パラメータを分割する必要があるんですね。
もう一つコマンドライン引数を取得する方法として、GetCommandLine関数を使います。
引数はありません。
実行すると、自分の実行ファイルのフルパスを含んで、コマンドライン引数の
文字列のポインタを返します。
MessageBox(NULL,GetCommandLine(),NULL,MB_OK);
と書いてコンパイルし、実行ファイルにファイルをドラッグして実行してみてください。
今度はこの実行ファイル自身のフルパスとともに、ドラッグしたファイルのフルパスが表示されたと思います。
この関数では実行ファイル自身のフルパスを含むところだけが、
先程の方法と違うんですね。
こちらの方がコンソールアプリケーションのコマンドライン引数の取得に少し似ています。
どちらを使うかは自由です。
実行ファイルのフルパスを必要としなければ、前者の方法の方が簡単で良いと思います。
次回はビープ音の再生について説明します。
>> 【ビープ音の再生】に進む
>> WINAPI入門トップに戻る