none
win32コンソールアプリケーションで作成したプログラムを、Windowsフォームアプリケーションで実行するには RRS feed

  • 質問

  • プログラミング初心者です。
    初歩的な質問で大変恐縮なのですが、

    win32コンソールアプリケーションで作成したプログラムを、Windowsフォームアプリケーションで実行するには
    どうすればよいのでしょうか?
    具体的にはFormの画面で「OK」ボタンをクリックするとプログラムが実行されるというものです。

    自分なりに調べたのですが、

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {

    }

    この中にコードを記入すればいいのはわかるのですが、
    そのまま元のソースを張り付けてもクラス(?)の関係で実行できませんよね?
    実行ファイル(.exe)を呼び出して実行というようなコードがあるのでしょうか??
    調べている中でWindowsフォームアプリケーションはC++/CLI、win32コンソールアプリケーションはC++なので
    別の言語だから書き直さないといけないのかな?とも思ったのですが・・・



    すみませんがよろしくお願いします。

    プログラム環境など
    windows7
    Visual C++ 2008 ExpressEdition
    2010年1月19日 9:06

すべての返信

  • 別のプロセスとして実行するので構わないのなら、System::Diagnostics::Process クラスを使用すれば実行可能です。
    2010年1月19日 9:24
  • 実行したいと言われている内容によると思います。
    そもそも実行しようと考えている実行ファイルは何を行なうアプリなんでしょう?

    単純に実験的に実行したいだけで特に意味は有りませんと言う話なら、.NET Frameworkで外部プログラムを起動する方法を
    調べれば良いと思います。やりようによってはコマンドプロンプトの画面が一瞬表示されて終了するだけと言うことになるかもしれませんが。

    コンソールアプリの中で行っている処理をフォームアプリの中で実行したい。実行結果をウインドウ上に表示したいと言う話になると
    フォームアプリの中にコンソールアプリの中で行なっているロジックを持ってくる必要があるでしょう。
    この場合、C++/CLIで.NET Frameworkベースで実装するのか、unsafeなネイティブなコードとして実装するのかで
    話がまた変わってくると思います。
    C++/CLIは、ネイティブなコードと.NET Frameworkのコードを混在できる言語なのでやりようによっては
    殆どそのまま持ってこれるかもしれません。
    特に環境がExpressEditionなのであれば、MFCは使っていないと思うのでやりやすいのではないかと思います。
    いずれにしてもC++/CLIは御本人がかかれている通り、C++とは別言語になりますから
    C++/CLIで実装するつもりがあるならそっちの言語の勉強も必要になります。
    正直、C++を始めたばかりと言うのであれば、C++/CLIまで手を出すのはどうかなと思います。
    どうしてもGUI(ウインドウ)が必要ですか?

    あと、WTL等を使えば、C++/CLIを使わなくてもGUIの実装は出来ますよ。
    ExpressEditionとフリーのツールの組合せでC++でGUIを実装する為の環境を構築する方法もあります。

    参考:Win32フリー開発環境
    http://61.213.197.199/~vorga/freedev3vcee2.html


    解決した時は、参考になったレスポンスの所にある[回答としてマーク]ボタンをクリックしてスレッドを締めましょう。
    2010年1月19日 9:32
  • 回答ありがとうございます。早速調べてみたいと思います!

    2010年1月19日 11:21
  • 詳しい回答ありがとうございます。
    説明不足ですみません。

    コンソールアプリで作成した実行ファイルは、ARToolkitを利用して3Dオブジェクトを表示するアプリです。
    具体的にはカメラから画像を取得し、マーカー認識をし、3Dオブジェクトを描画するという処理を行います。

    C++の勉強のためにVisualStudioを導入したというよりは
    私の見ていたARToolkitの導入サイトがVC++2008を使っていたので
    そこから勉強し始めたといった感じです。

    VisualStudioを使用していればフォームがつけられるものとぼんやり考えており、
    ゆくゆくは、GUIから表示するオブジェクトの変更や操作が出来ればと思っていました。


    まずはWTLや.NETなど、教えていただいたことについて調べてきます。
    取り急ぎお礼まで。
    2010年1月19日 11:47