こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

実行ファイルに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;

どういった原因が考えられるでしょうか。
どなたかご教授いただけないでしょうか。

投稿日時 - 2016-07-26 05:34:58

QNo.9206614

困ってます

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

> プロパティを変更し、ビルドしたものを別のPCにいれて検証すると、メッセージが表示されてしまいます。

OpenCVがDLLを欲しがってるんじゃないかしら? static-libraryをリンクしましたか?

投稿日時 - 2016-07-26 16:31:19

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

> DLLの表示がない項目を両方試したのですがだめでした。

もしかしてですが、参考にされたページでもそうですが、ほかで見つけたページでも
MSVCR120.dll
が見つからないエラーの場合は、マルチスレッドの設定で回避できると説明がありました。
MSVCP120.dllはNo1さんが紹介しているページで「C++ 再頒布可能パッケージ」を入れないとだめなのかもしれませんね。

投稿日時 - 2016-07-26 16:07:56

ANo.3

DLLを同梱させたいの?
DLLなしで実行できるようにしたいの?

前者なら配布パッケージを拾ってくる。
後者ならプロパティを変更する。

投稿日時 - 2016-07-26 10:07:45

補足

後者です。プロパティを変更し、ビルドしたものを別のPCにいれて検証すると、メッセージが表示されてしまいます。開発側のパソコンではVisual Studioは外付けHDDに入れています。

投稿日時 - 2016-07-26 14:35:44

ANo.2

画像ではマルチスレッドDLLの時の画面になっていますが、説明ではその部分を「マルチスレッドDLLじゃないもの」に設定すると説明されています。そのように設定したのでしょうか。

投稿日時 - 2016-07-26 08:14:26

補足

プロパティを変更し、ビルドしたものを別のPCにいれて検証すると、メッセージが表示されてしまいます。開発側のパソコンではVisual Studioは外付けHDDに入れています。DLLの表示がない項目を両方試したのですがだめでした。

投稿日時 - 2016-07-26 14:36:54

ANo.1

> どういった原因が考えられるでしょうか。

どうもこうもありません、
”MSVCP120.dllがないため、プログラムを開始できません。” です。

MSVCP120.dllは再配布パッケージに含まれるはず。

参考URL:https://www.microsoft.com/en-us/download/details.aspx?id=40784&wa=wsignin1.0

投稿日時 - 2016-07-26 07:57:33

あなたにオススメの質問