今、2つプログラムがあるのですが、
引数で判断して、1つのプログラムにまとめたいと思っています。
exeファイルへの引数の書き方はわかったのですが、
それをどのようにmain関数に書き込めばよいのかわかりません。
初心者で申し訳ございませんが、よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
main関数であれば、ipadcaronさんのご回答のとおりです。
win32APIと書かれているので、win32アプリケーション(WinMainエントリポイント)でしたら、次のページに情報があります。第三引数に、コマンドライン引数の文字列が入っています。
https://msdn.microsoft.com/ja-jp/library/windows/desktop/ff381406.aspx
http://gurigumi.s349.xrea.com/programming/visualcpp/intro1.html
https://msdn.microsoft.com/ja-jp/library/cc364870.aspx
もしくは、Cランタイムを組み込んであれば(通常のプロジェクトには組み込まれているかと)、_argc や__argvが使えます。こちらのほうが便利でしょう。
https://msdn.microsoft.com/ja-jp/library/dn727674.aspx
http://win32lab.com/tips/tips3.html .. VC++5.0 以降でもOK
投稿2015/11/11 01:35
編集2015/11/11 01:39総合スコア728
0
MS-DOS プロンプトを開く。
x:¥>>
上記のプロンプトで、以下を入力する。
exeファイル名 パラメタ1 パラメタ2 パラメタ3
全部入力して、改行コード入力で、exeファイル名.exe が実行される。
exeファイル名.exe のmain 関数は以下のように定義した。
int main(int argc, char argv[])
{
}
exe が実行されたとき、argc は、4
argv は、
[0] exeファイル名
[1] パラメタ1
[2] パラメタ2
[3] パラメタ3
がそれぞれ入る。
てな感じです。
入門書やc言語入門のHPを見て勉強址てください。
投稿2015/11/11 00:00
総合スコア1693
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
windowsでもmain関数でargv[1]等として引数を取得できますが、開発環境によってはWinMain等の他の名前になっている場合があります。
Win32APIならGetCommandLine()で、main関数でなくても(ライブラリ関数の奥の方でも)コマンドラインをとれますので非常に便利なのですが、コマンドラインがそのまま文字列になっているので、字句の解析ルーチンを自前で書かなくてはなりません。
字句解析ルーチンは初心者にはハードル高い(と思う)ので、argvを使った方がよろしいかと思います。
ちなみに、argvという名前でなくても良いけれど、Cの世界では「掟」なんだと私は解釈しています。
投稿2015/11/11 09:03
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/11 10:33