Machine Vision シリーズ 1: Visual Studio 2019 ダイナミック リンク ライブラリ DLL の確立

シリーズ記事ディレクトリ

第 1 章: Visual Studio 2019 ダイナミック リンク ライブラリ DLL の確立


目次

シリーズ記事ディレクトリ

序文

1. DLL とは何ですか?

2. 設立手順

1.VSをインストールする

2. DLLライブラリを作成する

 3. 新しい DLL を作成する

 4 番目に、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

おすすめ

転載: blog.csdn.net/weixin_42748604/article/details/122351790