1. 程式人生 > 其它 >vs2019下 c++中 dll 的新建和引用步驟

vs2019下 c++中 dll 的新建和引用步驟

在工作目錄下新建資料夾 DllImportTest  ,作為解決方案所在目錄

新建專案動態連結庫(DLL)專案 DllDemo

       位置  指定到 上面新建資料夾 DllImportTest 所在的路徑,解決方案名稱 DllImportTest

在解決方案目錄下新建 Include,Lib,Output目錄

       其中 Include 目錄用於儲存.h 檔案,Lib目錄用於儲存lib 檔案,Output 目錄用於儲存 dll 和 exe檔案

在 Include  目錄下新建 TestMethod.h  將其新增到 DllDemo 的標頭檔案目錄

      內容如下:

#pragma once

#include <iostream>

extern "C" __declspec(dllexport) void SayHello();

DllDemo 屬性 –> C/C++ -> 常規   ->  附加包含目錄 新增   ..\Include 

在原始檔目錄新建TestMethod.cpp

      內容如下:

#include "pch.h"

#include "TestMethod.h"

void SayHello()

{

       std::cout << "abc" << std::endl;

}

生成專案,此時預設會在解決方案下的Debug 目錄下生成  dll, lib, pdb 檔案

DllDemo 屬性 ->連結器->常規  

輸出檔案 設定為 $(OutDir)..\Output\$(TargetName)$(TargetExt)

DllDemo 屬性 ->連結器->高階

      匯入庫 設定為  $(OutDir)..\Lib\$(TargetName).lib

生成專案,此時 會在 Output 目錄下生成 dll 檔案,在 Lib目錄下生成lib檔案

新建控制檯專案 HostDemo

引用 標頭檔案和 lib檔案

       HostDemo 屬性 –> C/C++ ->  常規   ->  附加包含目錄 新增   ..\Include 

       HostDemo 屬性 -> 連結器 –> 常規 -> 附加庫目錄  新增 ..\Lib

       HostDemo 屬性 -> 連結器 –> 輸入 –> 附加依賴項  新增  DllDemo.lib

在 HostDemo.cpp 中 新增 #include "TestMethod.h" 和     SayHello();

內容如下:

#include "pch.h"

#include "TestMethod.h"

void SayHello()

{

       std::cout << "abc" << std::endl;

}

#include <iostream>
#include "TestMethod.h"

int main()
{
SayHello();
std::cout << "Hello World!\n";
}

HostDemo屬性 ->常規 –>輸出目錄 設定為 $(SolutionDir)$(Configuration)\..\Output\

生成程式