質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

Q&A

解決済

3回答

1510閲覧

win32APIのmain関数への質問です

ayane.ch

総合スコア11

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

0グッド

0クリップ

投稿2015/11/10 23:10

今、2つプログラムがあるのですが、
引数で判断して、1つのプログラムにまとめたいと思っています。

exeファイルへの引数の書き方はわかったのですが、
それをどのようにmain関数に書き込めばよいのかわかりません。

初心者で申し訳ございませんが、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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
hsk

総合スコア728

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ayane.ch

2015/11/11 10:33

ありがとうございます! 説明が足りなかったのですが、そうですWinMainでの渡し方でした… ただexeファイルに引数を書いて、変数にでも渡すだけでよかったのですね 非常に簡単な内容に悩みましたが、解決しました。感謝です!
guest

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

ipadcaron

総合スコア1693

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

windowsでもmain関数でargv[1]等として引数を取得できますが、開発環境によってはWinMain等の他の名前になっている場合があります。
Win32APIならGetCommandLine()で、main関数でなくても(ライブラリ関数の奥の方でも)コマンドラインをとれますので非常に便利なのですが、コマンドラインがそのまま文字列になっているので、字句の解析ルーチンを自前で書かなくてはなりません。
字句解析ルーチンは初心者にはハードル高い(と思う)ので、argvを使った方がよろしいかと思います。
ちなみに、argvという名前でなくても良いけれど、Cの世界では「掟」なんだと私は解釈しています。

投稿2015/11/11 09:03

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問