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\
生成程式