1. 程式人生 > 其它 >VS中建立和使用c++的dll動態庫(轉)

VS中建立和使用c++的dll動態庫(轉)

新建一個作為動態庫的calc專案,包含如下.cpp和.h檔案

介面ICalc.h如下:

#pragma once

#define CALC_API _declspec(dllexport)

class CALC_API ICalc
{
public:
	//用於建立介面例項
	static ICalc* CreateInterface();

public:
	//用於求和計算,a,b作為輸入
	virtual int sum(const int a,const int b) = 0;
}; 

calc.h作為ICalc介面的派生類,派生ICalc介面定義的計算函式在calc.cpp中實現
calc.h如下:

#include "ICalc.h"

class calc : public ICalc
{
public:
	//派生ICalc介面中的sum函式
	virtual int sum(const int a,const int b);
};

calc.cpp如下:

#include <stdio.h>
#include "calc.h"

//實現建立一個calc例項
ICalc* ICalc::CreateInterface()
{
	return new calc();
}

//計算求和a+b
int calc::sum(const int a,const int b)
{
	return a+b;
}

計算的dll動態庫實現後,編譯生成dll檔案和lib檔案
然後新建一個myCalc專案,myCalc專案中需要使用該calc.dll動態庫

操作步驟:
1.新建myCalc專案後,新增一個main.cpp,然後編譯

2.在myCalc專案路徑下新建一個include資料夾存放介面ICalc.h檔案

3.在myCalc專案路徑下新建一個lib資料夾存放calc專案中編譯生成的calc.lib檔案

4.將calc專案編譯生成的calc.dll複製到myCalc專案的輸出目錄下
calc生成的calc.dll的路徑參考下圖的輸出目錄,具體路徑看個人怎麼配

同理,myCalc的輸出目錄也是在myCalc專案中的這個地方,具體路徑看個人怎麼配
5.vs中配置myCalc專案如下
(1)c/c++常規,附加包含目錄,新增ICalc.h檔案的在myCalc專案的存放路徑

(2)連結器常規,附加庫目錄,將calc.lib在myCalc專案的存放路徑新增上

main.cpp如下:

#include <stdio.h>
#include "ICalc.h"

int main()
{

	ICalc *myCalc = ICalc::CreateInterface();

	printf("a+b=%d",myCalc->sum(1,2));


	getchar();
	return 0;

}

https://blog.csdn.net/qq_41738624/article/details/122126863