MSVCRT CommandLineToArgvW 新しいページはコチラ
提供: yonewiki
(→概要) |
(→概要) |
||
2行: | 2行: | ||
=='''概要'''== | =='''概要'''== | ||
− | + | Windowsアプリケーションでも、コンソールアプリケーションでもプログラム起動引数はコマンドとして発行されます。プログラム起動引数の処理が可能という事です。そこでより簡単に起動引数を取得するための命令が用意されています。最初の引数にはプログラムのパスがあるので、1つくらいは引数が取得できるでしょう。 | |
11行: | 11行: | ||
例 | 例 | ||
− | <span style="background:linear-gradient(transparent 75%, #ffbf7f 75%); font-weight:bold; "><span style="color:deeppink;">LPWSTR* </span><span style="color:blue;">CommandLineToArgvW</span>(GetCommandLineW(), &argcUTF16);</span> | + | <span style="background:linear-gradient(transparent 75%, #ffbf7f 75%); font-weight:bold; "><span style="color:deeppink;">LPWSTR* </span>argvUTF16<span style="color:blue;">CommandLineToArgvW</span>(GetCommandLineW(), &argcUTF16);</span> |
− | + | ||
+ | |||
+ | 上記のようにすると、2番目の引数に指定したint型のアドレスで起動引数の数を、戻り値として起動引数の文字列配列のポインタを取得できます。MSVCのCppプログラム内の文字は基本的にUTF-16の形式で扱われますので、CommandLinToArgvWはUTF-16の形式で文字列が取得きます。ここで取得した文字列ポインタでは、まだ文字列を取得できたとは言えない状態です。いくつかある文字列の配列の一番最初のアドレスを取得しただけです。 | ||
+ | |||
+ | |||
+ | [[MSVCRT std::for_each]]のようなものを使って、それぞれの値を操れる状態に追加の処理を施す必要はあると思います。for_each以外のやり方でも良いと思います。 | ||
[[Windows#MSVC Runtimeリファレンス|MSVC Runtimeリファレンス]]に戻る | [[Windows#MSVC Runtimeリファレンス|MSVC Runtimeリファレンス]]に戻る |