PDF形式でダウンロードPDF形式でダウンロード

DLLファイルとは、C++で記述・制御される、動的にリンクされたライブラリファイルのことです。DLLを使うと、コードの共有、保管、保存が容易になります。この記事では、 「Visual Studio」というWindowsアプリケーションや 、そのMac版「Visual Studio for Mac」でDLLファイルを作成する方法を紹介します。インストール時には、「C++によるデスクトップ開発」にチェックが入っていることを確認しましょう。「Visual Studio」はすでにインストールされていても、そのチェックボックスにチェックを入れていない場合は、インストーラーを再度実行して、必ずチェックを入れましょう。

  1. How.com.vn 日本語: Step 1 「Visual Studio」を起動する 
    「Visual Studio」は「スタート」メニューまたは「アプリケーション」フォルダにあります。DLLはデータのライブラリで、プロジェクトの一部に過ぎず、通常、DLLにアクセスするには付属アプリが必要です。
    • 「Visual Studio(Windows版)」は こちらからダウンロード可能です。
    • 「Visual Studio for Mac」はこちらからダウンロード可能です。
    • この記事では、マイクロソフトが提供するコードを用いてDLLファイルを作成する方法を紹介します。
  2. How.com.vn 日本語: Step 2 ファイル
    タブをクリックする ワークスペースの上(Windows)または画面上部(Mac)にあります。
  3. How.com.vn 日本語: Step 3 新規作成
    プロジェクトの順にクリックする 「新しいプロジェクトの作成」というダイアログボックスが表示されます。
  4. How.com.vn 日本語: Step 4 「言語」、「プラットフォーム」、および「プロジェクトの種類」に関するオプションを設定する ...
    「言語」、「プラットフォーム」、および「プロジェクトの種類」に関するオプションを設定する 表示されるプロジェクトテンプレートの種類を絞り込みます。
    • 言語をクリックしてドロップダウンメニューを開き、C++を選択しましょう。
  5. How.com.vn 日本語: Step 5 「プラットフォーム」をクリックしてドロップダウンメニューを開き、「Windows」を選択する
  6. How.com.vn 日本語: Step 6 「プロジェクトの種類」をクリックしてドロップダウンメニューを開き、「ライブラリ」を選択する ...
    「プロジェクトの種類」をクリックしてドロップダウンメニューを開き、「ライブラリ」を選択する
  7. How.com.vn 日本語: Step 7 ダイナミックリンクライブラリ(DLL)
    をクリックする 選択すると青くハイライトされます。次へをクリックして先に進みましょう。
  8. How.com.vn 日本語: Step 8 「プロジェクト名」のテキストボックスにプロジェクト名を入力する 
    例えば、サンプルとしてそのテキストボックスに「MathLibrary」と入力します。
  9. How.com.vn 日本語: Step 9 作成
    をクリックする DLLプロジェクトが作成されます。
  10. How.com.vn 日本語: Step 10 ヘッダーファイルをDLLに追加する 
    メニューバーの「プロジェクト」から「新しい項目の追加」を選択します。
    • ダイアログボックスの左メニューからVisual C ++を選択します。
    • ダイアログボックスの中央からヘッダーファイル(.h)を選択します。
    • メニュー選択の下にある「名前」のテキストボックスに「MathLibrary.h」というファイル名を入力します。
    • 追加をクリックして、空のヘッダーファイルを生成します。
  11. How.com.vn 日本語: Step 11 空のヘッダーファイルに以下のコードを入力する
      // MathLibrary.h:数学関数の宣言を含む#pragma once#ifdef MATHLIBRARY_EXPORTS#define MATHLIBRARY_API __declspec(dllexport)#else#define MATHLIBRARY_API __declspec(dllimport)#endif// フィボナッチ漸化式で整数の初期値a,bに対して、// F(n)が{ n = 0, a//       { n = 1, b//       { n > 1, F(n-2) + F(n-1)// となる数列Fが記述される// この数列がF(0) = 1, F(1) = 1に初期化されると// この漸化式で1, 1, 2, 3, 5, 8, 13, 21, 34, ...// という有名なフィボナッチ数列が生成される// F(0) = a, F(1) = bを満たすように// フィボナッチ数列を初期化する// この関数は他の関数の前に呼び出す必要があるextern "C" MATHLIBRARY_API void fibonacci_init(    const unsigned long long a, const unsigned long long b);// 数列の次の値を生成する// 成功した場合はtrueを返し、現在の値とインデックスを更新する// オーバーフローが発生した場合はfalseを返し、現在の値とインデックスは変更せずに残すextern "C" MATHLIBRARY_API bool fibonacci_next();// 数列の現在の値を取得するextern "C" MATHLIBRARY_API unsigned long long fibonacci_current();// 数列の現在のインデックス位置を取得するextern "C" MATHLIBRARY_API unsigned fibonacci_index();
    • 上記は、マイクロソフトのヘルプページで提供されているサンプルコードです。
  12. How.com.vn 日本語: Step 12 CPPファイルをDLLに追加する 
    メニューバーの「プロジェクト」から「新しい項目の追加」を選択します。
    • ダイアログボックスの左メニューから「Visual C ++」を選択します。
    • ダイアログボックスの中央から「C++ファイル(.cpp)」を選択します。
    • メニュー選択の下にある「名前」のテキストボックスに「MathLibrary.cpp」というファイル名を入力します。
    • 「追加」をクリックして、空のファイルを生成します。
  13. How.com.vn 日本語: Step 13 空のファイルに以下のコードを入力する
      // MathLibrary.cpp:DLLにエクスポート関数を定義する#include "stdafx.h" // Visual Studio 2019ではpch.hを使う#include <utility>#include <limits.h>#include "MathLibrary.h"// DLL内での状態変数:static unsigned long long previous_;  // 以前の値(あれば)static unsigned long long current_;   // 数列の現在の値static unsigned index_;               // 数列の現在の位置// F(0) = a, F(1) = bを満たすように// フィボナッチ数列を初期化する// この関数は他の関数の前に呼び出す必要があるvoid fibonacci_init(    const unsigned long long a,    const unsigned long long b){    index_ = 0;    current_ = a;    previous_ = b; // 初期化された特別な場合を参照}// 数列の次の値を生成する// 成功した場合はtrue、オーバーフローが発生した場合はfalseを返すbool fibonacci_next(){    //オーバーフローが発生していないかどうかを調べる    if ((ULLONG_MAX - previous_ < current_) ||        (UINT_MAX == index_))    {        return false;    }    // index == 0の特殊な場合は、bの値を返すだけ    if (index_ > 0)    {        // それ以外の場合は、数列の次の値を計算する        previous_ += current_;    }    std::swap(current_, previous_);    ++index_;    return true;}// 数列の現在の値を取得するunsigned long long fibonacci_current(){    return current_;}// 数列の現在のインデックス位置を取得するunsigned fibonacci_index(){    return index_;}
    • 上記は、マイクロソフトのヘルプページで提供されているサンプルコードです。
  14. How.com.vn 日本語: Step 14 メニューバーのビルドをクリックする 
    ワークスペースの上(Windows)または画面上部(Mac)にあります。
  15. How.com.vn 日本語: Step 15 ソリューションのビルド
    をクリックする クリックすると以下のようなテキストが表示されます。
      1>------ Build started: Project: MathLibrary, Configuration: Debug Win32 ------1>MathLibrary.cpp1>dllmain.cpp1>Generating Code...1>   Creating library C:\Users\username\Source\Repos\MathLibrary\Debug\MathLibrary.lib and object C:\Users\username\Source\Repos\MathLibrary\Debug\MathLibrary.exp1>MathLibrary.vcxproj -> C:\Users\username\Source\Repos\MathLibrary\Debug\MathLibrary.dll1>MathLibrary.vcxproj -> C:\Users\username\Source\Repos\MathLibrary\Debug\MathLibrary.pdb (Partial PDB)========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
    • DLLファイルの作成に成功した場合は、それがここに表示されます。また、エラーが発生した場合は、ここにリストで表示されるので修正しましょう。[1]
    広告

このHow.com.vn記事について

How.com.vn 日本語: How.com.vn編集チーム
共著者 ::
How.com.vnスタッフライター
この記事は、経験豊富なHow.com.vnの編集者と調査員から成るチームによって執筆されています。調査員チームは内容の正確性と網羅性を確認しています。

How.com.vnのコンテンツ管理チームは、編集チームが編集した記事を細心の注意を払って精査し、すべての記事がHow.com.vnの高品質基準を満たしているかどうかを確認しています。 この記事は14,103回アクセスされました。
カテゴリ: コンピューター
このページは 14,103 回アクセスされました。

この記事は役に立ちましたか?

⚠️ Disclaimer:

Content from Wiki How 日本語 language website. Text is available under the Creative Commons Attribution-Share Alike License; additional terms may apply.
Wiki How does not encourage the violation of any laws, and cannot be responsible for any violations of such laws, should you link to this domain, or use, reproduce, or republish the information contained herein.

Notices:
  • - A few of these subjects are frequently censored by educational, governmental, corporate, parental and other filtering schemes.
  • - Some articles may contain names, images, artworks or descriptions of events that some cultures restrict access to
  • - Please note: Wiki How does not give you opinion about the law, or advice about medical. If you need specific advice (for example, medical, legal, financial or risk management), please seek a professional who is licensed or knowledgeable in that area.
  • - Readers should not judge the importance of topics based on their coverage on Wiki How, nor think a topic is important just because it is the subject of a Wiki article.

広告