visual studio2019下動態鏈接庫的制作


打開visual studio2019創建動態鏈接庫項目,項目名稱為20199324dll

然后定義宏:在頭文件中定義即可,宏的作用的是允許該函數能夠被外部訪問,並直接調用。代碼如下:

// pch.h: 這是預編譯標頭文件。
// 下方列出的文件僅編譯一次,提高了將來生成的生成性能。
// 這還將影響 IntelliSense 性能,包括代碼完成和許多代碼瀏覽功能。
// 但是,如果此處列出的文件中的任何一個在生成之間有更新,它們全部都將被重新編譯。
// 請勿在此處添加要頻繁更新的文件,這將使得性能優勢無效。

#ifndef PCH_H
#define PCH_H

// 添加要在此處預編譯的標頭
#include "framework.h"

#endif //PCH_H


//定義宏

#ifdef IMPORT_DLL

#else
#define IMPORT_DLL extern "C" _declspec(dllimport) //指的是允許將其給外部調用
#endif

IMPORT_DLL int add(int a, int b);
IMPORT_DLL int minus(int a, int b);
IMPORT_DLL int multiply(int a, int b);
IMPORT_DLL double divide(int a, int b);

然后在pch.cpp文件中實現這些即可,代碼如下:

// pch.cpp: 與預編譯標頭對應的源文件

#include "pch.h"

// 當使用預編譯的頭時,需要使用此源文件,編譯才能成功。

int add(int a, int b)
{
	return a + b;
}

int minus(int a, int b)
{
	return a - b;
}

int multiply(int a, int b)
{
	return a * b;
}

double divide(int a, int b)
{
	double m = (double)a / b;
	return m;
}

接下來是點擊生成,會在debug目錄下生成20199324dll.dll文件(這就是我們所需要的)

然后新建一個控制台程序,用於測試是否成功調用dll,命名為20199324dlltest

引入windows.h(必須);在main函數寫下列語句調用dll,代碼如下:

// 20199324dlltest.cpp : 此文件包含 "main" 函數。程序執行將在此處開始並結束。

#include <iostream>
#include<windows.h>

int main()
{
	HINSTANCE hDllInst;
	hDllInst = LoadLibrary(L"20199324dll.dll"); //調用 DLL	
	typedef int(*PLUSFUNC)(int a, int b); //后邊為參數,前面為返回值	
	PLUSFUNC plus_str = (PLUSFUNC)GetProcAddress(hDllInst, "add");//GetProcAddress為獲取該函數的地址	
	std::cout << plus_str(93,24);
}

注意:需要把之前生成的dll文件,復制到控制台程序的debug目錄下!

點擊本地Windows調試器:

參考資料:https://blog.csdn.net/Giser_D/article/details/89677441


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM