EXEにDLLファイルを同梱する方法を知りたい

このQ&Aのポイント
  • EXEファイルにDLLファイルを同梱する方法を教えてください。
  • C++でOPENCVを使用している開発環境で、EXEファイルにDLLファイルを同梱する方法を知りたいです。
  • Microsoft Visual Studio Express 2013 for Windows Desktopを使用している環境で、EXEファイルにDLLファイルを同梱する方法について教えてください。
回答を見る
  • ベストアンサー

EXEにDLLファイルを同梱したいです。

http://kidd0320.hatenablog.com/entry/2014/06/06/142355 EXEにDLLファイルを同梱するため、こちらのサイトを参考にしたのですが、ソフトを別のパソコンに入れたところ”MSVCP120D.dllがないため、プログラムを開始できません。” と表示されてしまいます。 開発環境はC++でOPENCVを使っています。 開発ソフトはMicrosoft Visual Studio Express 2013 for Windows Desktopを使っています。 構成はReleaseでプラットフォームはwin32です。 どうすればよいでしょうか。 どなたかご教授いただけないでしょうか。

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

  • ベストアンサー
回答No.1

> ”MSVCP120D.dllがないため、プログラムを開始できません。” DLLファイルのbasenameが'D'で終わっていることから、Debug-modeのDLLでしょう。 Debug-DLLは配布が許されていないのでコピー先に存在しないのも無理からぬこと。 実行モジュールもしくはそれが依存しているライブラリがDebug版であると推測されます。

その他の回答 (2)

  • skp026
  • ベストアンサー率45% (1011/2237)
回答No.3

デバッグビルドのEXEを配布しているようです。 リリースビルドの仕方は、こちらが参考になります。 http://www.atmarkit.co.jp/ait/articles/1409/29/news143_5.html 再配布についてのこまごました話しはこちら。 お使いのexpress版の情報を確認ください。 https://www.visualstudio.com/ja-jp/mt676448.aspx 配布用のファイルのある位置も説明あります。

  • catpow
  • ベストアンサー率24% (620/2527)
回答No.2

デバック版のDLL参照を取り消して、"D"じゃあないDLLを使って実行モジュールを作りましょう。

関連するQ&A

  • 実行ファイルにDLLファイルを同梱したいです。

    http://kidd0320.hatenablog.com/entry/2014/06/06/142355 EXEにDLLファイルを同梱するためこちらのサイトを参考にしたのですが、ソフトを別のパソコンに入れたところ”MSVCP120.dllがないため、プログラムを開始できません。” と表示されてしまいます。 開発環境はC++でOPENCVを使っています。 開発ソフトはMicrosoft Visual Studio Express 2013 for Windows Desktopを使っています。 構成はReleaseでプラットフォームはwin32です。 インクルードファイルなどは以下のとおりです。 #include "stdafx.h" #include <stdio.h> #include <windows.h> #define snprintf _snprintf #include <opencv/highgui.h> #include <iostream> #include<fstream> using namespace std; どういった原因が考えられるでしょうか。 どなたかご教授いただけないでしょうか。

  • *.exeと異なるフォルダのDLLをみにいく様に設定するには?

    環境 Windows VISTA SP1 Visual Studio 2008 今現在、ビルドすると、releaseというフォルダにA.exeが 作成されます。そして、同一のプロジェクトにDLL生成プロジェクトを 追加してあり、同じreleaseというフォルダに B.dllが生成される様に設定してあります。 この状態で、A.exeをたたけば、B.dllを認識して立ち上がってくれます。 しかし、最近、dllを作るプロジェクトが大量になってしまい、 releaseフォルダが結構たくさんになってしまっています そこでA.exeをたたいたら release/dll というフォルダをみにいって起動してくれる様に改良 したいのですが どうしたらよいでしょうか? *exeを追記しているslnのプロパティを一通りみたのですが よくわかりません。

  • MSVCP80.dll 

    X-APPLICATION.exe-エントリーポイントが見つかりません プロシージャ エントリポイント ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2IBが ダイナミック リンク ライブラリ MSVCP80.dll から見つかりませんでした このエラーはどうしたら解決できるのでしょうか?ソフトが起動できません。 MSVCP80.dllというのをDLして、system32にいれたのですが、解決しませんでした。 何か方法はありますlか? WINDOWS7です。

  • VC++2010のmsvcp100.dllについて

    私は、windows7 64bitで「Microsoft Visual C++ 2010 Service Pack 1 Compiler Update for the Windows SDK 7.1」や「Microsoft Windows SDK for Windows 7 and .NET Framework 4」 をインストールしました。 しかし、Message: Visual Studio C++ 2010のProgram Files (x86)\Microsoft Visual Studio 10.0\VC\redist\x86\Microsoft.VC100.CRT\msvcp100.dllが見当たりません。redistフォルダ自体が存在しません。 どうすれば、Program Files (x86)\Microsoft Visual Studio 10.0\VC\いかにredistフォルダとmsvcp100.dllを作成することができますか?

  • コンパクトなEXEファイルに組み込めるデータベース

    Visual stadio C# でソフトを開発しています。EXEファイルから他所を閲覧せずに使えるEXEファイルに組み込めるデータベースソフトを探しています。SQLiteは試してみましたが、EXEファイルからDLLを参照する様にできています。コンパイル時にDLLファイルごとコンパイルするとエラーが発生しました。完成時にEXEファイルが一個で済むようなデータベースはないでしょうか。回答のほどよろしくお願いします。

  • IE6の「更新」アイコンのリソースはどのEXE/DLLに同梱されていますか

    XP(SP2)のエクスプローラや,IE6にある「更新」ボタンのアイコンリソースは どのEXE(ないしDLL)に同梱されていますか. あるソフトのアイコンをカスタマイズするのに個人的に借りたいのですが. http://www.mct.ne.jp/users/fjv/win2ktips/tips2k014.htm をみて, c:\WINNT\system32\compstui.dll c:\WINNT\system32\dsuiext.dll c:\WINNT\system32\shell32.dll C:\Program Files\Internet Explorer\iexplore.exe にはありませんでした.

  • exeをdllの様に利用する方法

    以前、どこかのサイトで見たことなので記憶があいまいなのですが、exeファイルもdllの様にリンクして関数を呼び出せるというように記憶しています。 実際、可能なのでしょうか?だとすると具体的にどのように書けばよいのでしょうか。詳しく説明しているサイトやサンプルプログラムなど乗っているサイトがあれば教えてください。 環境はC/C++でVisual Studioです。 よろしくお願いします。

  • VistaでビルドしたexeがXPで動作しない。

    Visual Studio 2003 (OS:XP)で開発していたプロジェクトを、Visual Studio 2005(OS:Vista)に移行しているのですが、VistaでビルドしたexeをXPへインストールすると下記のエラーが表示され動作しません。 【表示されるエラー】 「プロシージャ エントリ ポイント _except_handler4_common が ダイナミック リンク ライブラリ msvcrt.dllから見つかりませんでした」 MFCのダイアログベースで、インストールはセットアッププロジェクトで作成したインストーラーを使用しています。 VistaでビルドしたexeをXPで動作させるには、どのようにしたら良いのでしょうか? 以上、よろしくお願いします。

  • DLLって

    C言語を勉強しているのですが、いまいちよくDLLの意味がわかりません。例えば、シューティングのゲームで、当たり判定の処理をDLL形式?で保存して、違うシューティングを開発するときにそのDLLの関数を使って当たり判定を簡単にする。みたいな解釈でいいのでしょうか。また作成するときはどうやって作ればいいのでしょうか。ちなみにvisual studio 2008を持っています。ご教授お願いします。

  • ntdll.dllというファイルについて

    ある音楽ソフト(FL Studio)を立ち上げるときに、次のようなエラーが出ました。そのエラーを直したいので相談させてください。 エラー内容 FL.exe-エントリポイントが見つかりません。 プロシージャエントリポイントNtAlpcSendWaitReceivePortがダイナミックリンクライブラリntdll.dllから見つかりませんでした。 私のPCの情報です。 DELL XPS M1210 OSは、WINDOWS XP Home Edition Version 2002 Service Pack 3 使用している音楽ソフトは、FL Studio 10(image line社) それが原因か分かりませんが、Samsung Kiesというスマートフォンのソフトをインストールしています。 インターネットで色々調べたところ、Samsung Kiesをインストールしたときに、ntdll.dllが古いファイル等に上書きされたような書き込み情報を見つけました。ntdll.dllを修正したいのですが、やり方がわかりません。 ちなみに、ntdll.dllを検索したところPC内に4つありました。(根拠はないですが、時期的に(3)のファイルが怪しい気がしています。) (1)ntdll.dll C:\i386 (615kB 2004.8.5) (2)NTDLL.dll C:\i386\system32 (615kB 2004.8.5) (3)ntdll.dll C:\windows\system32 (625kB 2010.12.10) (4)ntdll.dll C:\windows\servicePack Files\i386 (613kB 2008.4.14) このような、状況で困っています。 申し訳ありませんが、ご指導よろしくお願いします。