• ベストアンサー

MFCと.NETFramework

MFCも.NETFrameworkも、OSだけが入っている環境だと動作しないと思うのですが、 MFCは、アプリケーションと一緒に配布して、インストーラーなしでアプリケーションを起動出来ますか? 出来るだけ必要なファイルを最小限にとどめた簡単なアプリケーションを作りたいのです。

質問者が選んだベストアンサー

  • ベストアンサー
  • MrBan
  • ベストアンサー率53% (331/615)
回答No.1

MFC6のランタイムは最近のXPだと予め入っていたりとかしますし、 MFCのバージョンにもよります。OSのバージョンにもよります。 他にActiveXとか使ってるとインストーラが必要になったりとか、 あまり一概に言えるものではありません。 まぁ、MFC6(VC6),MFC7(VC7.1)あたりだと、他に特殊なものを使っていなければ、 スタティックリンク(ものによってはPro版以上?)すればexe単体で動きます。 ダイナミックリンクでも、dllを添付すればインストーラは必須ではありません。

naktak
質問者

お礼

ありがとうございます。 そういえばそんな事が出来ましたね!すっかり忘れてました。 逆に疑問になったのが、MFCがOS内に含まれており、アプリケーションと一緒に 配布したMFCが存在した場合、どちらを見に行くか?という事です。 一番最初に見るのって、実行アプリと同ディレクトリでしたっけ?

その他の回答 (2)

  • MrBan
  • ベストアンサー率53% (331/615)
回答No.3

> 一番最初に見るのって、実行アプリと同ディレクトリでしたっけ? Windows PCの場合、DLLの評価順はMSDNのLoadLibraryの説明を読むと書いてあります。

  • furyfox
  • ベストアンサー率56% (58/103)
回答No.2

MFCに関しては既出の通りMFCのライブラリを スタティックリンクすればexe単体で実行出来ます。 ただしある程度実行ファイルのサイズは大きくなります。 .NET Frameworkはおっしゃるように実行には.NET Frameworkの環境が必要になります。 (VC#2005で作成したアプリなら.NET Framework2.0の実行環境) Vistaでは.NET Framework3.0(WinFX)が入っているようです。

naktak
質問者

お礼

ありがとうございます。 確かに、重くなりそうです・・・。メモリも。 まー、大きいプログラムではないので、その辺は気にしない事にします(笑)

関連するQ&A

  • Microsoft NetFrameWorkは再配布できる?

    質問です。 NetFrameWorkは、自分のアプリケーションと一緒に、 自分のサイトで、配布することは、出来るのでしょう か。 お願いします。

  • .NetFrameWork2.0のインストールについて

    .NetFrameWork1.1インストール済みでWebアプリケーション(vb.net2003)が稼動中のWindows2003Serverがあります。 このServerに.NetFrameWork2.0が必要なWindowsアプリケーション(vb.net2005)のプログラムをインストールしたいのですが・・・・。 (1)既に動いているWebアプリケーションに影響はないでしょうか? (2).NetFrameWork2.0をインストールするとServerの再起動が必要になるでしょうか? よろしくお願いいたします。

  • .NetFramework3.0のアンインストール

    .NetFramework3.0がアンインストールできません。 「プログラムの追加と削除」からアンインストールしようとすると、 'netfx30a_x86.msi'が必要とのメッセージが出力されます。 .NetFramework3.0のインストーラをダウンロードしようとしたのですが、 既にMSのサイトからもダウンロードできませんでした。 この状況下で.NetFramework3.0をアンインストールする方法もしくは 'netfx30a_x86.msi'をダウンロードできるサイトを教えて下さい。 ちなみにOSはWinXPSp3です。 よろしくお願いいたします。

  • .netFrameworkを利用したフォームアプリケーションの起動に関して

    FileStreamを利用したファイルの読み込みを行うアプリケーションを作成しています。 【開発環境】 VC++2008、.netFrameworkを利用したWindowsフォームアプリケーションです。 また、開発とテストに用いているのはWindowsVistaです。 【作成したアプリケーションのフォルダ構成(概略)】 [フォルダ:App]  L[ファイル:app.exe]  L[フォルダ:msg]    L[ファイル:config.cfg] 【現状】 app.exeからconfig.cfgを読み込みます。 ビルドしてReleaseフォルダ内に出来るapp.exeを起動すれば普通に読み込むことが出来ています。 しかし.netFrameworkのインストールされていないマシンを使用している知人に動かしてもらったところ、「このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。アプリケーションを再度インストールすることにより問題が解決する場合があります」というエラーメッセージが出たそうです。 そのため、VisualStudioのセットアップウイザードを使ってインストーラを作成しました。 しかし今度は自宅のVistaでインストールして動かしてみると、「パス'[config.cfgへのパス]'へのアクセスが拒否されました」と出ます。 【作成したプログラムの抜粋】 System::IO::FileStream^ fs = gcnew System::IO::FileStream("msg/config.cfg",System::IO::FileMode::Open); System::IO::StreamReader^ sr = gcnew System::IO::StreamReader(fs); String^ strLine; strLine = sr->ReadLine(); sr->Close(); fs->Close(); 【質問】 ・インストーラを作成せずに、Releaseフォルダを直接圧縮して配布する方法はあるのでしょうか。可能であればこちらが理想です。 ・上記の方法が不可能でインストーラの作成が必要な場合、config.cfgの読み込みはどうすればいいのでしょうか。 もしどちらも不可能であれば、ユーザには先に.netFrameworkランタイムをインストールしてもらってからReleaseフォルダのexeを起動してもらうことにしますが、上記のどちらかの方法が可能であればと思い質問させていただきました。 よろしくお願いします。

  • .netframework4がインストール出来ない

    OSはwindows7HP 64bitです。 .netframework4のwebインストーラー版やスタンドアロン版をインストールしようとしても砂時計が回るだけでその後セットアップが開始されません。 プロセスを確認したら作動はしているようなのですが、そのまま放置しても開始されません。 windowsUpdateからもインストールはしてみたのですがこの場合は半日以上放置してもインストールバーが溜まることはありませんでした。 Webで検索してみると.netframework4のインストールがうまく行かないなどの記事は多数あり、その中で近しい記事の解決策を試してみるもダメでした。 .netframework4をインストールするために必要な条件は全て満たしております。 具体的に行った対処法は ・Glary Utilitiesを使用してレジストリの不整合を治す。 ・.NET Framework Cleanup Toolを使用して1.1から4まで入れなおす。 この場合1.1は入れれず、2はすでに入っているもしくは、上位交換種が入っているといった内容の警告メッセージが、3,5は4と同じで音沙汰なしでした。 ツールを起動してみたあと再起動し、.netframeworkのバージョンを確認してみると3.5が残ったままでした。 ・Windows Update用のfixitを使用する。 状況は変わりませんでした。 ・winrarを使用してスタンドアロン版のデータを吸い出しsetup.exeを起動する。 この場合起動すると「このセットアッププログラムを使用して.netframeworkをインストールすることができません。」と出ます。 ・クリーンインストールしてみる。 状況は全く同じでした。 ・セーフモードでインストールしてみる。 同上。 このような状況でwebサイトをめぐってみても答えにたどり着かず困っております。 PCの状況としてOSをwin7 32bitから64bitに乗り換えた時上書きせず新しいパーティションを作りそこに64を新規で入れました。 初めてこういった質問サイトを利用するので勝手がわからず何か不足があるかもしれませんが、足りない情報などがあれば言ってください。

  • visualstudio2008で作成したプログラムを.NetFramework2.0で動かしたい

    はじめまして。 VisualStudio2008(評価版)を使用し、実行モジュールを下記の条件で 作成しました。 ・プロジェクト作成時に「CLR」→「空のCLRプロジェクト」を選択 ・プロジェクト作成時にプラットフォームの選択を「.netframework2.0」 を選択 これを「.netframework2.0」で動かそうとすると、「このアプリケー ションの構成が正しくないため、アプリケーションを開始できませんで した。アプリケーションを再度インストールすることにより問題が解決 する場合があります。」と表示されてエラーとなってしまいます。 「.netframework3.5」では正常に動作していたので、何かBuild時に 必要な設定がありましたら教えてください。  ※「全般」→「空のプロジェクト」で作成した場合も同様でした。 宜しくお願いします。

  • MFCでのPC毎の挙動について

    MFC使用のアプリケーションについて質問があります。 WINAPIと混在して、ある絵を描画するアプリケーションを MFCのダイアログベースにて作成しました。 開発を行ったPCでは問題なく想定した動作をしていますが、 別のPCで起動させるとウィンドウのみ出力され、×ボタンのクリックなど 全く動作しない状態になってしまいます。(他のソフトの操作は可能) 実際は待っていると(30分とか)動作する場合もありますが、 当然実用には適していません。 ちなみに一度起動してしまえば、次回は問題なく動くようです。 マルチメディアタイマーとダブルバッファなどを使用していますが、 何か影響しますか? このようにPCの違いで動作が変わってしまう要因をご存知ないでしょうか? 環境は下記のものです。 開発環境↓  XP SP3 VC2003  MFC ダイアログベース その他の実行環境↓  XP SP2 よろしくお願いします。

  • MFCの静的リンク

    WindowsXP + VisualStudio2008 を使ってMFCアプリを作成中です。 また、ActiveXなどは使わずにプログラムのコピーだけで配布できるものを作成しようとしています。 そこで質問なのですが、 MFCだけ使ったプログラムを配布する時、MFCを静的リンクしてしまえば、 他のDLLなどは一緒に配布する必要はないのでしょうか? MFCやネイティブプログラミングに詳しい方がいましたら教えて下さい。 どうぞ宜しくお願い致します。

  • MFCアプリケーションについて

    MFCアプリケーションを使用してプログラミングをしようと思うのですが、プロジェクト作成欄にMFCアプリケーションがありません。 使用している環境は OS : Windows XP C++ : Microsoft Visual C++ 2005 Express Edition です。 サポートされていないのでしょうか? MFCアプリケーションを使う方法を教えてください。

  • この場合、MFCかCLRか

    定期的に機器から取得した計測値をサーバーにアップするようなプログラムを作 成しようとしています。 長い間開発から遠ざかっていますがC++/MFCは経験があり、 ぱっと考えが浮かんだのは、 画面からスレッドを起動してマルチタスクで動作させる作りで、 (画面) ・ボタンによる処理開始/終了 ・状態等の表示 (スレッド) 一定周期毎に、 ・計測機器から値を読み込む ・読み込んだ値から、とあるデータファイルを作成する ・作成したデータファイルをTCP/IPでサーバーに送信する のようなものです。 MFCなら簡単に作れそうなのですが、 最近はCLRが主流になりつつあるとかで、 MFCでの開発について積極的な意見はあまりないようです。 上記のような処理を実現する場合でも、 やはりCLRを勉強した方がいいのでしょうか。 MFCが早晩廃れるならCLRも考えたいと思いますが...。 また、開発環境はVisual Studio 2010ですが、 MFCで64ビットアプリケーションは作成できますか? (32ビットアプリケーションをWOW64で動作させるのでなく) よろしくお願いします。

専門家に質問してみよう