Windows で C++ を使用してコマンドライン引数を解析する際に、どういうわけか問題が発生しています。これを使ってみた
int main(int argc, char **argv)
{
std::cout << "Command-line argument count: " << argc << " \n";
std::cout << "Arguments:\n";
for (int i = 0; i < argc; i++)
std::cout << " argv[" << i << "] "
<< argv[i] << "\n";
return 0;
}
これと同様に
int main(int argc, char *argv[])
{
std::cout << "Command-line argument count: " << argc << " \n";
std::cout << "Arguments:\n";
for (int i = 0; i < argc; i++)
std::cout << " argv[" << i << "] "
<< argv[i] << "\n";
return 0;
}
変数argc
とargv
は、どういうわけか初期化されていないようです。プログラムを起動すると、次のように返されます。
Z:\Dev\ProcessSuspender\Debug>ProcessSuspender a
Command-line argument count: 2130558976
Arguments:
argv[0]
argv[1] ╠ÉÉÉÉÉj↑h╚♂YwÞØ÷■ âe³
argv[2]
(以下のクラッシュ)
/SUBSYSTEM:CONSOLE
リンカーオプションを使用してMSVC12でコンパイルしました。この問題の原因は何ですか?