シリーズ記事ディレクトリ
第 1 章: Visual Studio 2019 ダイナミック リンク ライブラリ DLL の確立
目次
序文
最近、医療用マシン ビジョン プロジェクトを開始しました。このプロジェクトでは、いくつかの重要なポイントを記録するために C++ を使用する必要があります。
環境:Windows10、VS2019、opencv320
1. DLL とは何ですか?
ダイナミック リンク ライブラリ DLL は、特定のジョブを完了するために実行可能プログラムまたは他の DLL によって呼び出すことができる関数を含む独立したファイルです。DLL は、他のモジュールが DLL 内の関数を呼び出した場合にのみ機能します。実際のプログラミングでは、特定の関数を完了する関数をダイナミック リンク ライブラリに配置し、他のプログラムが呼び出せるように提供します。Windows API などのすべての機能は、Kernel32.dll、User32.dll、GDI32.dll などの dll に含まれています。
2. 設立手順
1.VSをインストールする
公式ウェブサイト、最新バージョンは2022です
Visual Studio 2022 IDE - ソフトウェア開発者向けプログラミング ツール (microsoft.com)
2. DLLライブラリを作成する
コードは次のとおりです(例)。
1. 新しいプロジェクトを作成する
2. ダイナミック リンク ライブラリ (DLL) を選択します。
3. プロジェクト名を設定します。特別な要件がない場合はチェックしません (ソリューションとプロジェクトを同じディレクトリに置きます)。
4. デフォルトのファイルを変更せずに生成します。
5. プロパティ マネージャーを使用してプロパティを構成します。詳細については、シリーズの第 2 章を参照してください。
6. プリコンパイル済みヘッダーを変更します。プロパティ ページ - C/C++ - プリコンパイル済みヘッダー - はプリコンパイル済みヘッダーには適用されません。
注:プログラムを修正しない場合はエラーが報告されますので、詳細は後日検討します
3. 新しい DLL を作成する
1. プロジェクトの下のヘッダー ファイルで、新しいヘッダー ファイル (.h) を右クリックし、エクスポートする必要がある関数インターフェイスを宣言します。
2. プロジェクトの下のソース ファイルを右クリックして、宣言された関数を実装するための新しいソース ファイル (.cpp) を作成します。
プロジェクトのディレクトリは以下のとおりです。
コードは以下のように記述できます。
.h ファイル
次のコードの機能は、戻り値の型が void である呼び出し可能関数「SayHello()」を宣言することです。
#pragma once
#include <iostream>
extern "C" __declspec(dllexport) void SayHello();
ここで extern "C" __declspec(dllexport) void SayHello(); のコードを分析します、ここで extern "C" の機能は、C 言語の方法で変更されたコードをコンパイルするようにコンパイラーに指示することです。これは議論の対象ではありません。興味があれば、自分で問い合わせることができます。次に __declspec(dllexport) を分析します。この修飾子はコンパイラとリンカーに、それによって変更された関数または変数を他のアプリケーションで使用するために DLL からエクスポートする必要があることを伝えます。コードには __declspec(dllimport) という別の文があります。この修飾子は、それによって変更される関数または変数を DLL からインポートする必要があり、後で使用されることをコンパイラとリンカーに指示します。最後に、関数 void SayHello() があります。これは、他のプログラムによって呼び出される必要がある関数です。
.cppファイル
.h ファイルで宣言された関数を実装します。
#include "pch.h"
#include "TestDLL.h"
void SayHello()
{
std::cout << "Hello!你成功了!" << std::endl;
}
コードが書かれています。
4 番目に、DLL をコンパイルします。
属性環境に問題がなければコンパイルをクリック
[コンパイル] をクリックして次のポップアップ ウィンドウを表示し、[確認] をクリックします (DLL は exe を生成しません。エラーは無視できます)。
プロジェクト パス - x64 - デバッグ フォルダーの下にファイルを生成します。
コンパイルが完了しました。
要約する
1. 上記のチュートリアルはデバッグ モードにのみ適用されます。TestDLLCreated.exe アプリケーションを直接起動する場合は、「TestDLL.dll」ファイルと「TestDLL.lib」ファイルを TestDLLCreated.exe と同じディレクトリにコピーする必要があります。それを実行するために!
2. プロパティ マネージャーを使用してプロパティを構成でき、他のアイテムはプロパティを直接使用して、設定の繰り返しを避けることができます。
参考:https://blog.csdn.net/elaine_bao/article/details/51784864