![必ず動くDLLの作り方 Visual Studio 2019 C/C++ 専用動画](https://i.ytimg.com/vi/DO5Bj2rMc5g/hqdefault.jpg)
コンテンツ
DLLファイルは、C ++で記述および制御されるダイナミックリンクライブラリファイルです。 DLLを使用すると、コードの共有、保存、および保存が簡単になります。このwikiHowは、WindowsのVisualStudioまたはMacのVisualStudioを使用してDLLファイルを作成する方法を説明しています。インストール時に「C ++を使用したデスクトップ開発」がチェックされていることを確認してください。既にVisualStudioを使用しているが、そのチェックボックスをオンにしていない場合は、インストーラーを再度実行して、インストールされていることを確認できます。
ステップに
VisualStudioを開きます。 このプログラムは、[スタート]メニューまたは[アプリケーション]フォルダーにあります。 DLLは情報のライブラリであるため、プロジェクトの一部にすぎず、通常、DLLにアクセスするにはコンパニオンアプリが必要です。
- Visual Studio for Windowsはここからダウンロードできます:https://docs.microsoft.com/en-us/visualstudio/install/install-visual-studio?view = vs-2019
- Visual Studio for Macはここからダウンロードできます:https://docs.microsoft.com/en-us/visualstudio/mac/installation?view = vsmac-2019
- このwikiHowは、Microsoftが提供するコードを使用して、DLLファイルの作成方法を説明しています。
[ファイル]をクリックします。 これは、プロジェクトルームの上(Windows)または画面の上部(Mac)にあります。
クリック 新着 そして 事業. [新しいプロジェクトの作成]ダイアログボックスが表示されます。
オプションを提案する 言語, プラットホーム そして プロジェクトタイプ に。 これらは、表示されるプロジェクトテンプレートのタイプをフィルタリングします。
- クリック 言語 ドロップダウンメニューを取得してクリックするには C ++.
クリック プラットホーム ドロップダウンメニューを取得してクリックするには ウィンドウズ.
クリック プロジェクトタイプ ドロップダウンメニューを取得してクリックするには 図書館.
クリック ダイナミックリンクライブラリ(DLL). 選択内容が青に変わります。クリック 次の 進むために。
[名前]ボックスにプロジェクトの名前を入力します。 たとえば、サンプル名ボックスに「MathLibrary」と入力します。
クリック 作る. DLLプロジェクトが作成されます。
DLLにヘッダーファイルを追加します。 あなたはをクリックすることによってこれを行うことができます 新しいアイテムを追加する 未満 事業 メニューバーで。
- 選択する Visual C ++ ダイアログボックスの左側のメニューにあります。
- 選択する ヘッダーファイル(.h) ダイアログボックスの中央にあります。
- メニュー選択の下の名前フィールドに「MathLibrary.h」として名前を入力します。
- クリック 追加 空のヘッダーファイルを生成します。
空のヘッダーファイルに次のコードを入力します。
- これは、MicrosoftヘルプWebサイトのサンプルコードです。
// MathLibrary。(n)は{n = 0、a // {n = 1、b // {n> 1、F(n-2)+ F(n-1)//いくつかの初期積分値aとb。 //シーケンスが初期化されている場合F(0)= 1、F(1)= 1、//この関係はよく知られているフィボナッチを返します//行:1、1、2、3、5、8、13 21、34、... // F(0)= a、F(1)= bとなるように//フィボナッチ関係文字列を初期化します。 //この関数は、他の関数の前に呼び出す必要があります。外部 "C" MATHLIBRARY_API void fibonacci_init(const unsigned long long a、const unsigned long long b); //行の次の値を返します。 //成功するとTrueを返し、現在の値とインデックスを更新します。 //オーバーフロー時にFalse、現在の値とインデックスを変更しないままにします。外部 "C" MATHLIBRARY_API bole fibonacci_next(); //行の現在の値を取得します。外部 "C" MATHLIBRARY_API unsigned long long fibonacci_current(); //行の現在の値の位置を取得します。 extern "C" MATHLIBRARY_API unsigned fibonacci_index();
DLLにCPPファイルを追加します。 あなたはをクリックすることによってこれを行うことができます 新しいアイテムを追加する 未満 事業 メニューバーで。
- 選択する Visual C ++ ダイアログボックスの左側のメニューにあります。
- 選択する C ++ファイル(.cpp) ダイアログボックスの中央にあります。
- メニュー選択の下の名前フィールドに「MathLibrary.cpp」として名前を入力します。
- クリック 追加 空のファイルを生成します。
空のファイルに次のコードを入力します。
- これは、MicrosoftヘルプWebサイトのサンプルコードです。
// MathLibrary.cpp:DLLのエクスポートされた関数を定義します。 #include "stdafx.h" // Visual Studio2019でpch.hを使用します#includeutility> #include limits.h> #include "MathLibrary.h" // DLL内部状態変数:static unsigned long long previous_; //前の値(存在する場合)static unsigned long long current_; //現在の文字列値staticunsigned index_; //現在のシーケンスposition // 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){// else、次のシーケンス値を計算previous_ + = current_; } std :: swap(current_、previous_); ++ index_; trueを返します。 } //文字列の現在の値を取得します。 unsigned long long fibonacci_current(){return current_; } //行の現在のインデックス位置を取得します。 unsigned fibonacci_index(){return index_; }
クリック コンパイル メニューバーで。 このボタンは、プロジェクトフィールドの上(Windows)または画面の上部(Mac)にあります。
クリック ソリューションのコンパイル. それをクリックすると、次のようなテキストが表示されます。
- DLLの作成に成功した場合は、ここに表示されます。エラーが発生した場合は、ここに一覧表示されるので、修正できます。
1> ------ビルド開始:プロジェクト:MathLibrary、構成:Debug Win32 ------ 1> MathLibrary.cpp 1> dllmain.cpp1>コードの生成... 1>ライブラリCの作成:ユーザー username Source Repos MathLibrary Debug MathLibrary.lib and object C: Users username Source Repos MathLibrary Debug MathLibrary.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)==========ビルド: 1成功、0失敗、0最新、0スキップ==========