• ベストアンサー

MFCの静的リンク

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

  • ken2r
  • お礼率88% (82/93)

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

  • ベストアンサー
  • koi1234
  • ベストアンサー率53% (1866/3459)
回答No.1

VC6しか使ってないので2008の詳細知りませんが 基本的にはその認識であっています ※ debug版で作らないこと (VC6で)静的リンクではなく共有DLLでMFC使用 でReleaseファイル作成 EXEを他の(VC未インストール=XOのみインストール)環境で使った事はあります

ken2r
質問者

お礼

ご回答有難うございました。

関連するQ&A

  • MFCの静的リンクと再頒布条件

    こんにちは。いつもお世話になっております。 Visual Studio .NET 2003の VC++で アプリケーションプログラム(.exe)を作成しました。 ダイアログベースのアプリで、 「スタティックライブラリでMFCを使用する」の設定で ビルドしました。 質問したいのは、 MFCを静的リンクした場合の MFCの再頒布についてです。 1)冒頭のようなアプリを世の中に頒布することは、  マイクロソフトのソフトウェア使用許諾契約に対して  問題は無いのでしょうか?  (静的リンクしてるのでMFCの再頒布を伴っていると思ってます) 2)問題有り/無しは、.NET2003の eula.txtのどの条項で  判断できますでしょうか? --- eula.txtを読むと、MFCの動的リンクを利用し、 必要な DLLを再頒布をする際の条件等は明確に示されていますが、 静的リンクした場合の条件、再頒布可否の判断方法が示されていない ように読めます。 (単に理解不足かもしれませんが) 以上、よろしくお願いします。

  • mfc vc++2005 で構成が正しくない・・・

    vc++2005 mfcで作成したプログラムで上記が出て他のPCで動きません。 mfc以外はファイルのコピーをするとかだけの単純なツールなのでmfcが 悪さしているとは思います。 mfcをスタティックでリンクにして、コード生成のところのマルチスレッドDLLを マルチスレッドに変えるとやはりいけますが、別にあったwindows7ではmfcと コード生成のところを変えなくても問題なくいけました。 vc++2005 redistributable パッケージを入れても変わりません。 mfcは別物なのでしょうか?? ネットを見ているとredistributableパッケージを入れれば大丈夫!!という 感じなのですが。 すいませんがどなたかご教授ください。

  • MFCでグリッド

    MFCでグリッド 現在、MFCでGUIプログラムを行っています。 MFCではデフォルトでグリッドコントロールがありません。 そこで質問なのですが、以下の条件を満たすようなグリッドコントロールをMFCで実装する 場合、皆さんはどうしていますか? ・セルの入力をコンボボックスにしたり、入力制限を設けたりしたい。(SpreadSheetのように) ・ActiveXコントロールは使いたくない(配布時、レジストリをいじりたくない) やはり、リストなどの基本的なクラスを派生させて自分でコツコツ作るしかないですか? 詳しい方がいましたら教えて下さい。 環境:WindowsXP SP3 言語:VC++6.0 MFC

  • VBの参照設定について

    はじめまして、Doryaです。 早速ですが、VBでACTIVEX.DLLを作成してローカルのドライブにおいてEXEプログラムより参照設定しています。 このEXEをコンパイルして、他のPCへ移しましたがプログラムが、起動しませんでした。他のPCも、コンパイルしたPCと同じようにACTIVEX.DLLを、デシトリビューションウイザードで作り登録していました。 どうも、参照設定がうまくできてないような気がします。ためしに、プログラム(EXE)をデシトリビューションウイザードを使ってインストールしましたら、問題なくうごきました。これって、DLLとEXEを別々にコピーして、配布することはできないのでしょうか?

  • CからMFCのDLLは呼出し可能?

    C言語プログラムからMFCで作ったDLL(MFC AppWizard)を呼び出すことは可能でしょうか? Cで作ったDLL(Win32 Dinamic-Link Library)と同じように呼び出せるのでしょうか? ご教示お願いいたします。

  • .Net Framework APIがあればMFCはいらないのでは?

    最近Windowsプログラミングに興味を持ちましていろいろと調べている所なのですが、疑問に思ったので質問させて下さい。 質問の内容はタイトルどおりなのですが、 windowsのシステムが.Net Frameworkに統一されようとしている今、.Net Framework APIがあればMFCを新しく勉強する価値は殆どないと思うのですが、この考えは間違っているでしょうか? 例えば、下の本(実物はまだ見てません) http://www.amazon.co.jp/exec/obidos/ASIN/4797324201/249-5720925-3989928 では「 MFCを利用したWindowsネイティブプログラムから,最新の.NETアプリケーションの作成方法まで,..」 と紹介されてますが、VC++.NETでプログラミングするのに、なんでMFC?なんて思って仕舞うのですが、MFCでないと出来ないことがあるのでしょうか?

  • [VisualStudio]コンソールではリンクOKなのに、WinAPIでリンクNG

    はじめまして。 今、VisualStudio2005でC++であるDLLをリンクして使用しようとしています。(もらったライブラリでブラックボックスです。⇒仮にsample.dll) sample.libをVisualStudioのプロパティでリンク設定して sample.libに含まれるinitialize()APIを呼びます。 initialize()の内部では (1)ファイル読み込み (2)読み込んだ情報から何かしらの処理 と流れるようです。 そこでコンソールで使用した場合には、きちんと動作するのですが Winアプリで作成して同じ処理をした場合には、処理が落ちます。 Winアプリで作成した場合の感触的には、 (1)までは動いて(2)で落ちます。 内部の処理が悪いのかもしれませんが、そもそも、コンソールとWinAPIで、リンク方法など異なる部分というのがありますでしょうか? 情報が少ないかもしれませんが、詳細とまでは言わず、一般論で構いません。 詳しい方がおりましたら、ご教授いただければと思います。 イメージ的には以下のとおりです。 コンソール: int main() { initialize(); return 0; } Win32: int APIENTRY _tWinMain(...) { initialize(); return 0; }

  • LGPLライセンスのdllの二次配布について

    LGPLライセンスのdllの二次配布について LGPLライセンスについて質問させていただきます。 Windowsのアプリを作成しています。 プログラム内で、LGPLライセンスのdll(7-zip32.dll)を動的にリンクするのですが このプログラムをインストーラ形式で配布する場合、上記のdllをインストーラに含めて配布しても問題ないでしょうか?  また、ReadMeなどのテキストに特別な記述(LGPLライセンスの○○○.dllを使用している)が必要になりますか? 私のほうで調べてみたところ、以下のように認識しています。間違っていたらご指摘いただけたら幸いです。 A:自分のプログラム(LGPLライセンスのdllを動的にリンク) B:LGPLライセンスのdll ・インストーラにLGPLライセンスのdllを含めて二次配布するのは可能 (商用利用も可能) ・"A"のソースを公開する必要はない、"B"もソースの変更が無ければ公開する必要はない ・ReadMeに"A"のリバース・エンジニア、逆コンパイル禁止の文面を記述できない ・ReadMeに"B"を使用していることの記述が必要? <-- これがよくわかりません。

  • DCOMのアプリで配布用プログラムを作成時 ファイルが無い!!

    VBで作ったDCOMのアプリをディストビューション ウイザードで配布用プログラムを作成時 AutPrx32.DLL AutMgr32.exe RACMgr32.exeが必要とでましたが どこをさがしても見あたりません なにかアドバイスをください なお、開発マシン上での動作は確認できました。(サーバークライアントと同一マシン上) システムは VisualStudio6.0Pro(SP5) Windows2000Pro お願いします

  • VB6で作成したアプリをパッケージにしましたが、インストール時にエラーが出ます。

    WindowsXP ProでVisualBasic6で作成したソフトですが、インストール時に「C:\Windows\system32\mfc42.dll セットアップ先のファイルは、他のアプリケーションで使われています。使用中のアプリケーションを終了してください。」とmsvcrt.dllやSHLWAPI.DLLのエラーが3回表示されます。インストール後は、問題なく動作している?のですが、このエラーの原因はいったい何なのでしょうか?対策があれば教えていただきたいです。ちなみにVisualStudio6.0 SP5です。ちなみに配布用で作成したツールは、開発ソフトについていた、ディストリビューションウィザードです。