質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
DLL

DLL(Dynamic Link Library)とは、他のモジュールからも使用する事が出来る、関数とデータが格納されているモジュールのことです。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

Q&A

解決済

2回答

2782閲覧

VisualStudio2015でDLLについて知識を付けたいのとDLLを動かせるようになりたい。

watarusugimoto

総合スコア47

DLL

DLL(Dynamic Link Library)とは、他のモジュールからも使用する事が出来る、関数とデータが格納されているモジュールのことです。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

0グッド

0クリップ

投稿2016/10/30 13:57

編集2016/10/31 08:14

Visual Studio 2015 Communityを使って動的リンクライブラリDLLの使い方をマスターしたいと考えています。

また、DLLがどのような働きをするのか分かっていないので色々とサイトを見ているのですが、

どうもVisualStudioの操作説明が抜けていたりして分かりやすいサイトがありません。

このサイトが良いとかこの本が良いというのがあったら教えて下さい。

また、DLLについての知識が全くないので、どういうものなのか概要を教えてくださる方いましたら、

回答に付け加えて頂けるとありがたいです。

#追記
言語はC++を考えています。
よろしくお願いします。

#追記2
初心者なのでできるだけ分かりやすいサイトを勧めて頂けるとありがたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ishi9

2016/10/31 07:25

プログラム言語は何を使うのでしょうか?c++かc#かで作り方は違います。
guest

回答2

0

ベストアンサー

作り方、使い方は以下のサイトを参考にしてください。(vs2013ですが、2015とそう変わらないはず)
Visual C++でのDLLの一般的な作成方法(暗黙的リンク)

DLLの説明についてですが、「動的リンクライブラリ」とある通り、基本的にライブラリです。
ライブラリというのは簡単に言えば、便利な機能(クラスや関数)の集まりのことです。

で、ただのライブラリとどう違うのかですが、ただのライブラリは機能を変更・追加しても、元のプログラムをコンパイルし直さないと反映されません。ですが、DLL化しておくと、元のプログラムをコンパイルし直さなくても、DLLファイルを置き換えるだけで反映されます。

これの何が便利なのかというと、コンパイルができるのは基本的に開発者だけです。
普通のユーザーのPCはコンパイルはできません。ですので、プログラムに変更がある度に丸ごと実行ファイルを上書きする必要があります。ですが、機能を細かくDLL化しておくと、機能変更が入ったDLLだけを上書きすればよく更新の手間が減ります。(ただし細かく分けすぎるとそれはそれで管理が面倒です)

また、使用ユーザーによって使うDLLを変えるなんて芸当ができます。
これが利用される代表的な例は多言語対応です。ユーザーによって言語を管理するDLLを入れ替える事で実現します。

投稿2016/10/31 08:22

編集2016/10/31 08:32
ishi9

総合スコア1294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

watarusugimoto

2016/10/31 10:39

教えてもらったサイトですが、ところどころ不明確な部分があり、初心者には分かりづらいです。 最初のソリューションを作成しますの題目から進んで、空のプロジェクトを選びとあるのですが、これはWin32コンソールアプリケーションを選択ということで良いのでしょうか?不明な部分が多くて良くわからないです。 確実に分かるサイトがあれば教えてください。
ishi9

2016/11/02 01:14

空のプロジェクトとは本当に何も設定されていない(コンソールでもDLLでもない)状態の事ですが、たしかに初めての方には難易度高めかもしれませんね。失礼しました。 こっちの方は簡単そうです。 http://replication.hatenablog.com/entry/2015/07/29/093000
guest

0

vc++での作成ならば以下のWebが参考に
リンク内容

投稿2016/10/30 14:23

MasahikoHirata

総合スコア3747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

watarusugimoto

2016/10/31 08:01

ありがとうございます。 このサイトを参考にしてとりあえずDLLを作ってみたいと思います。 一つ質問があるのですが、 ここサイトで記述のある、namespace MathFuncsはMathFuncsDll.cppに記述すればよいのでしょうか? それとも、MathFuncsDll.hでしょうか? 初心者ですいません。 よろしくお願いします。
MasahikoHirata

2016/10/31 08:08

MathFuncsDll.cppです。 またソースにはサンプルにあるように、class,public,そして関数名と引数の形を定義。(そうしないと呼び出す側が何を呼ぶか?引数は?となってしまいますから。)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問