一つのアプリにメイン関数を二つ

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
あま
記事: 43
登録日時: 14年前

一つのアプリにメイン関数を二つ

#1

投稿記事 by あま » 14年前

タイトル通りの質問なのですが、一つのアプリケーションに二つにmain関数を使うことはできないのでしょうか?
なんか馬鹿な質問で申し訳ないのです。
main関数というのは関数の中で一番最初に実行されるので二つあってはならないので
絶対に二つ使うことはできないと思うのですが、何かうまくすれば使えないかな?と思いまして・・・
プログラム中でmain関数を呼び出すことは(たしか)出来ますよね?
そう考えるとmain関数を二つ作るというのもできないこともないかな?と思ったのです。

たとえば、一番最初の起動時にはCUIのコンソールアプリで実行され、
そこでユーザーがこのままコンソールで処理を続けるのか、GUIのWindowsアプリに切り替えて処理するのかを
選べたりするのは作れないのでしょうか?
逆に最初にWinアプリを起動させ、コンソールに切り替えたりとか・・・
まぁコンソールよりWinアプリの方が使いやすいし便利なのですが、
処理はコンソールの方が早かったり、コンソールの方が好きだと言うユーザーもいると思うので、
どちらも使えるようにすれば便利かな?と思いました。

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前
住所: 東京
連絡を取る:

Re: 一つのアプリにメイン関数を二つ

#2

投稿記事 by h2so5 » 14年前

あま さんが書きました:たとえば、一番最初の起動時にはCUIのコンソールアプリで実行され、
そこでユーザーがこのままコンソールで処理を続けるのか、GUIのWindowsアプリに切り替えて処理するのかを
選べたりするのは作れないのでしょうか?
そのようなアプリケーションを作るとしても、main関数の数とは関係がありません。
おそらく あま さんのやりたい事はこれでしょう。↓

http://www.f13g.com/%A5%D7%A5%ED%A5%B0% ... %BB%A4%EB/

box
記事: 2002
登録日時: 14年前

Re: 一つのアプリにメイン関数を二つ

#3

投稿記事 by box » 14年前

>一つのアプリケーションに二つにmain関数を使うことはできないのでしょうか?

できません。
そういうコードを書いてコンパイルしてみれば、掲示板で質問するまでもなく、即座に体感できることでしょう。

>プログラム中でmain関数を呼び出すことは(たしか)出来ますよね?

これは、できます。
しかし、このことと、main関数が2個存在できるかどうかという話は、別物です。

>たとえば、一番最初の起動時にはCUIのコンソールアプリで実行され、
>そこでユーザーがこのままコンソールで処理を続けるのか、GUIのWindowsアプリに切り替えて処理するのかを
>選べたりするのは作れないのでしょうか?

コンソールアプリの実行ファイルとWindowsアプリの実行ファイルを別個に用意しておいて、
system関数か何かを使って呼び出し合う、っていう方法が使えるかもしれません。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: 一つのアプリにメイン関数を二つ

#4

投稿記事 by みけCAT » 14年前

あま さんが書きました:たとえば、一番最初の起動時にはCUIのコンソールアプリで実行され、
そこでユーザーがこのままコンソールで処理を続けるのか、GUIのWindowsアプリに切り替えて処理するのかを
選べたりするのは作れないのでしょうか?
簡単に作ってみました。
このサンプルはコンパイルできましたが、使う関数によってはUndefined Referenceといわれる可能性があります。
-mwindowsとやってしまうとコンソールが使えないので、一つずつライブラリをリンクする必要があるかもしれません。
添付ファイル
gckirikae.zip
サンプルです。
(7.19 KiB) ダウンロード数: 140 回
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

あま
記事: 43
登録日時: 14年前

Re: 一つのアプリにメイン関数を二つ

#5

投稿記事 by あま » 14年前

うわ~。返信遅れてしまって申し訳ないです・・・
仕事忙しくてなかなか手を付けられませんでした>_<

みけCATさんサンプルありがとうございます。
本来はGUIを起動したらコンソールを消したかったのですが
そこら辺はやはりコンソールがメインで動いてるので消えるわけないですね。
大体頭の中で整理できたのでこれを基に頑張ります。

閉鎖

“C言語何でも質問掲示板” へ戻る