. DLLの作成方法
(1) Visual Studio 2019を起動します。
(2)新しいプロジェクトの作成(N)を押します。
(3)プルダウンを「C++」と「Windows」と「ライブラリ」にセットすると、ダイナミックライブラリ(DLL)が表示されます。
(4)フィルター処理されたプロジェクト タイプの一覧から、[ダイナミック リンク ライブラリ (DLL)]を選択して、[次へ]を選択します。
(5)[プロジェクト名]ボックスに「DLL_TEST64」と入力して、プロジェクトの名前を指定します。[場所]および[ソリューション名]の値は既定のままにします。[ソリューションとプロジェクトを同じディレクトリに配置する]をオフにします。
(6)[作成]ボタンをクリックしてプロジェクトを作成します。
(7)標準文字セットが日本語対応でないため、設定を変更します。
(8)「プロジェクト」_ 「 DLL_TEST64のプロパティ」を選択します。
(9)「構成プロパティ」_ 「 詳細」を選択します。
(10)文字セットをマルチバイト文字セットを使用するに変更します。
(11)適用ボタンを押します。
(12)OKボタンを押します。
(13)関数のヘッダー ファイルを作成するには、メニュー バーで?[プロジェクト]?>?[新しい項目の追加]?の順に選択します。
(14)[新しい項目の追加]?ダイアログ ボックスの左側のウィンドウで、?[Visual C++]を選択します。 中央のウィンドウで、?[ヘッダー ファイル (.h)]をクリックします。 ヘッダー ファイルの名前として「 DLL_TEST64.h」を指定します。
(15)[追加]?ボタンを選択して空白のヘッダー ファイルを生成します。これは新しいエディター ウィンドウに表示されます。
(16)ヘッダー ファイルの内容を次のコードに置き換えます。
#pragma once
#ifdef DLL_TEST64_EXPORTS
#define DLL_TEST64_API __declspec(dllexport)
#else
#define DLL_TEST64_API __declspec(dllimport)
#endif
extern "C" DLL_TEST64_API void DLL_TEST1();
extern "C" DLL_TEST64_API double ADD(double a, double b);
(17).cppファイルを作成するには、メニュー バーで?[プロジェクト]>[新しい項目の追加]?の順に選択します。
(18)[新しい項目の追加]ダイアログ ボックスの左側のウィンドウで、[Visual C++]を選択します。 中央のウィンドウで、
[C++ファイル (.ccp)]をクリックします。 .ccpファイルの名前として「 DLL_TEST64.ccp」を指定します。
(19)[追加]?ボタンを選択して空白の.ccpファイルを生成します。これは新しいエディター ウィンドウに表示されます。
(20).ccpファイルの内容を次のコードに置き換えます。
#include "pch.h"
#include "DLL_TEST64.h"
void DLL_TEST1()
{
MessageBox(NULL, TEXT("DLL呼び出し成功!"), TEXT("test"), MB_OK);
Beep(523, 200);
}
double ADD(double a, double b)
{
return a + b;
}
(22)ビルドの条件を「Relese」「x64」に設定します。(64bitシステム用です。)
(23)「ビルド」_「ソリューションのビルド」ビルドの条件を「Relese」「x64」に設定します。(64bitシステム用です。)
(24)メニュー バーで[ビルド]>[ソリューションのビルド]の順に選択します。
(25)以下の結果が出力されます。
ビルドを開始しました...
1>------ ビルド開始: プロジェクト: DLL_TEST64, 構成: Release x64 ------
1>pch.cpp
1>dllmain.cpp
1>DLL_TEST64.cpp
1>C:\Users\susum\source\repos\DLL_TEST64\DLL_TEST64\DLL_TEST64.cpp(5,1): warning C4273: 'DLL_TEST1': dll リンケージが一貫していません。
1>C:\Users\susum\source\repos\DLL_TEST64\DLL_TEST64\DLL_TEST64.h(8,32): message : 'DLL_TEST1' の以前の定義を確認してください
1>C:\Users\susum\source\repos\DLL_TEST64\DLL_TEST64\DLL_TEST64.cpp(11,1): warning C4273: 'ADD': dll リンケージが一貫していません。
1>C:\Users\susum\source\repos\DLL_TEST64\DLL_TEST64\DLL_TEST64.h(9,34): message : 'ADD' の以前の定義を確認してください
1> ライブラリ C:\Users\susum\source\repos\DLL_TEST64\x64\Release\DLL_TEST64.lib とオブジェクト C:\Users\susum\source\repos\DLL_TEST64\x64\Release\DLL_TEST64.exp を作成中
1>コード生成しています。
1>Previous IPDB not found, fall back to full compilation.
1>All 3 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
1>コード生成が終了しました。
1>DLL_TEST64.vcxproj -> C:\Users\susum\source\repos\DLL_TEST64\x64\Release\DLL_TEST64.dll
1>プロジェクト "DLL_TEST64.vcxproj" のビルドが終了しました。
========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========
これで Visual C++ を使用して DLL が作成されました。
(26) Visual Studio 2019を終了します。
C:\Users\susum\source\repos\DLL_TEST64\x64\Releaseホルダーに以下のファイルが生成されました。
作成されたDLL(ダイナミックリンクライブラリ)は、64 ビット オペレーティング システム用です。