VS中建立和使用c++的dll動態庫(轉)
阿新 • • 發佈:2022-05-12
新建一個作為動態庫的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;
}