VC++で作ったDLLが開発環境では利用できるのに

VC++をインストールしていないPCでは使えませんでした。
インストールしてみると使えるようになりました。
これは何が原因ででしょうか。
他のPCでも使えるようにするための対処方法も教えてください。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/12/09 00:00:54
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:maq No.2

回答回数81ベストアンサー獲得回数5

ポイント55pt

外しているかも知れませんが…MFCを利用したDLLプロジェクトではないですか?

であれば,MFCのスタティックライブラリを使用するというプロジェクトの設定が

あるはずなので,それを設定してみてください。

VC++のバージョンがわからないので,操作は省略させていただきます。

id:plugbot

VC++6.0です。

MFC AppWizard(dll)というものを選んで新規作成して作っていました。

>MFCのスタティックライブラリ

該当するものがありませんでした。


追記

確認したらありました^^;


追記

できました。DLLのサイズが大きくなるのですね。

ありがとうございます。

2008/12/09 00:00:08

その他の回答1件)

id:takerudayo No.1

回答回数165ベストアンサー獲得回数29

ポイント25pt

使えないときにどのようなエラーが表示されましたか?

一番可能性が高いのは、ランタイムが入っていないことです。

VC++のバージョンにもよりますが、例えばこういうものです。

ダウンロードの詳細 : Visual C++ 2008 再頒布可能パッケージ (x86)

ランタイムとはVBとかで有名ですが、言語の共通モジュールで、VC++の場合はMFCなどの関数が入っているものです。

id:plugbot

導入してみましたがロードできないようです。

2008/12/08 23:40:54
id:maq No.2

回答回数81ベストアンサー獲得回数5ここでベストアンサー

ポイント55pt

外しているかも知れませんが…MFCを利用したDLLプロジェクトではないですか?

であれば,MFCのスタティックライブラリを使用するというプロジェクトの設定が

あるはずなので,それを設定してみてください。

VC++のバージョンがわからないので,操作は省略させていただきます。

id:plugbot

VC++6.0です。

MFC AppWizard(dll)というものを選んで新規作成して作っていました。

>MFCのスタティックライブラリ

該当するものがありませんでした。


追記

確認したらありました^^;


追記

できました。DLLのサイズが大きくなるのですね。

ありがとうございます。

2008/12/09 00:00:08
  • id:takerudayo
    VC++6.0の場合は、ランタイムをスタティックにしてしまう方法と、
    別ファイルとしてのランタイムを用意する方法があります。
    別ファイルで用意する場合は、
    http://www.vector.co.jp/soft/win95/util/se040499.html
    のようなもので用意できます。
    MFC42.DLLとMSVCRT.DLLを作ったプログラムと同じフォルダにおいても動きます。
    参考にどうぞ。
    http://m--takahashi.com/bbs/pastlog/a1800/A1767.html
  • id:takerudayo
    MFC42.DLLとMSVCRT.DLLを使えば自分のプログラムサイズを小さいままで使えますよ。
    スタティックと言うのは、大雑把に言えば自分のDLL内部にMFC42.DLLとMSVCRT.DLLを組み込んでしまうことです。
    一般的なプログラムは、MFC42.DLLとMSVCRT.DLLをsystem32などのフォルダに入れ、
    アプリとしてのサイズを小さくしています。
  • id:plugbot
    非常に役立つ情報をありがとうございますm(_ _)m
  • id:cx20
    EXE や DLL の依存関係は「Dependency Walker(depends.exe)」というツールを使うことで調査可能です。
    参考まで。

    <参考情報>
    ■ Dependency Walker (depends.exe) Home Page
    http://www.dependencywalker.com/
    ■ [SMS] Dependency Walker for Win32 (Depends.exe) について
    http://support.microsoft.com/kb/198707/ja

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません