DLLファイルの作成方法

ページ名:DLLファイルの作成方法

DLLファイルは、C++で記述され制御されるダイナミックリンクライブラリファイルです。DLLを使用すると、コードの共有、保存、保存が簡単になります。このWikiHowでは、DLLファイルを作成する方法を、Windowsアプリケーション、またはMac向けに紹介します。インストール時に「C++によるデスクトップ開発」にチェックが入っていることを確認してください。すでにVisual Studioをお持ちで、このボックスにチェックを入れていない場合は、インストーラーをもう一度実行してチェックを入れてください。

  • 1
    Visual Studioを開きます。Visual Studio は、スタート・メニューかアプリケーション・フォルダにあります。DLLは情報のライブラリであるため、プロジェクトの一部分に過ぎず、通常はそれにアクセスするための付属アプリが必要です。
    • Visual Studio for Windowsはこちらから入手できます:
    • Mac版Visual Studioはこちらからダウンロードできます:
    • このWikiHowでは、DLLファイルをビルドする方法を説明するためにMicrosoftから提供されたコードを使用します。
  • 2
    ファイルをクリックします。プロジェクトスペースの上(Windows)または画面の上(Mac)にあります。
  • 3
    New and Projectをクリックします。新規プロジェクトの作成」ダイアログボックスがポップアップします。
  • 4
    言語、プラットフォーム、プロジェクト・タイプのオプションを設定します。これらによって、どのようなプロジェクト・テンプレートが表示されるかが決まります。
    • Languageをクリックしてドロップダウンメニューを表示し、C++をクリックします。
  • 5
    Platform をクリックしてドロップダウンメニューを表示し、Windows をクリックします。
  • 6
    Project Typeをクリックしてドロップダウンメニューを表示し、Libraryをクリックします。
  • 7
    Dynamic-link Library (DLL)をクリックします。選択した項目が青くハイライトされます。Next(次へ)をクリックして進みます。
  • 8
    プロジェクトの名前を Name Box に入力します。例えば、サンプル名のボックスに "MathLibrary "と入力します。
  • 9
    Create をクリックします。DLL プロジェクトが作成されます。
  • 10
    DLLにヘッダファイルを追加します。メニューバーの "Project "から "Add New Item "をクリックします。
    • ダイアログボックスの左メニューから「Visual C++」を選択します。
    • ダイアログ・ボックスの中央からヘッダ・ファイル(.h)を選択する。
    • メニューの選択肢の下にある名前フィールドに "MathLibrary.h "と名前を入力する。
    • Add をクリックして、空白のヘッダー・ファイルを生成します。
  • 11
    空白のヘッダ・ファイルに次のコードを入力します。
      // MathLibrary.h - 数学関数の宣言を含む #pragma once #ifdef MATHLIBRARY_EXPORTS #define MATHLIBRARY_API __declspec(dllexport) #else #define MATHLIBRARY_API __declspec(dllimport) #endif // フィボナッチ漸化式は数列Fを記述する // ここでF(n)は{ n = 0, a // { n = 1, b // // { n > F(n-2) + F(n-1) // である。1, F(n-2) + F(n-1) // である. // 数列が 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 bool fibonacci_next(); // シーケンス内の現在の値を取得します。 extern "C" MATHLIBRARY_API unsigned long fibonacci_current(); // シーケンス内の現在の値の位置を取得します;
    • これはマイクロソフトのヘルプ・サイトから提供されたサンプル・コードです。
  • 12
    DLL に CPP ファイルを追加します。メニュー・バーの "Project "から "Add New Item "をクリックすることで追加できます。
    • ダイアログ・ボックスの左メニューから「Visual C++」を選択します。
    • ダイアログ・ボックスの中央から「C++ ファイル (.cpp)」を選択する。
    • メニューの選択肢の下の名前フィールドに「MathLibrary.cpp」と名前を入力する。
    • Add をクリックして、空のファイルを生成します。
  • 13
    ブランク・ファイルに以下のコードを入力します。
      // MathLibrary.cpp :DLL のエクスポート関数を定義します。// Visual Studio 2019 では pch.h を使用 #include #include #include "MathLibrary.h" // DLL 内部状態変数: static unsigned long long previous_; // もしあれば前の値 static unsigned long long current_; // 現在の配列値 static unsigned index_; // 現在の seq.位置 // 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; // 初期化時の特別なケースを参照 } // 数列の次の値を生成する。 // 成功すれば真を返し、オーバーフローすれば偽を返す。 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
    メニュー・バーの Build をクリックする。これはプロジェクト・スペースの上(Windows)か、画面の上(Mac)にあります。
  • 15
    Build Solution]をクリックします。これをクリックすると、次のようなテキストが表示されます:
      1>------ ビルドを開始しました:プロジェクト:MathLibrary, Configuration:Debug Win32 ------ 1>MathLibrary.cpp 1>dllmain.cpp 1>Generating Code... 1> Creating library C:\UsersusernameSourceReposMathLibraryDebugMathLibrary.lib and object C:˶UsersusernameSourceReposMathLibraryDebugMathLibrary.exp 1>MathLibrary.vcxproj -> C:\Users\username\Source\Repos\MathLibrary\Debug\MathLibrary.dll 1>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の作成に成功した場合は、ここに表示されます。エラーが発生した場合は、ここに表示されますので、修正してください。
  • この記事は、CC BY-NC-SAで公開されている「 DLLファイルの作成方法 」を改変して作成しました。特に断りのない限り、CC BY-NC-SAの下で利用可能です。

    シェアボタン: このページをSNSに投稿するのに便利です。

    コメント

    返信元返信をやめる

    ※ 悪質なユーザーの書き込みは制限します。

    最新を表示する

    NG表示方式

    NGID一覧