DLL匯出類和匯出函式

2021-07-23 06:29:34 字數 1075 閱讀 5685

1、動態庫dll中的類或者函式有時候要被其他的庫呼叫,因此需要被其他庫呼叫的類或者函式需要進行匯出。

2、首先編寫需要匯出的dll,新建乙個工程設定應用程式型別為dll

3、類的**如下

標頭檔案

#pragma once

#define ex_port __declspec(dllexport)

using namespace std;

extern "c" int __declspec(dllexport) subval(int a, int b);

class ex_port exportclass

};

cpp

#include "stdafx.h"

#include "exportclass.h"

#include int subval(int a, int b)

exportclass::exportclass()

exportclass::~exportclass()

4、呼叫dll的exe要設定附加包含目錄,附加庫目錄,設定dll的路徑到exe目錄之下。

5、然後在主程式之中就可以引用了。

// mainproess.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include "exportclass.h"

#include //#pragma comment(lib,"dllexport1.lib")

int _tmain(int argc, _tchar* argv)

其中

1、#pragma comment(lib,"dllexport1.lib") 這句話和在附加依賴項中新增lib檔案的作用一樣,所以在這裡就可以不新增了。
2、dll中只要匯出的類和函式才能被其他程式呼叫,其他如果不帶有
extern "c" int __declspec(dllexport) 類似的標誌的常規函式是無法被其他程式呼叫

DLL匯出函式

經常使用vc6的dependency檢視dll匯出函式的名字,會發現有dll匯出函式的名字有時大不相同,導致不同的原因大多是和編譯dll時候指定dll匯出函式的界定符有關係。vc 支援兩種語言 即c c 這也是造成dll匯出函式差異的根源 我們用vs2008新建個dll工程,工程名為 testdll...

DLL匯出函式

dll匯出的函式 和 匯出類在呼叫時,有些區別,這裡暫時不講,直說簡單的匯出函式 include stdafx.h include mathdll.h pragma comment lib,mathdll.lib 你也可以在專案屬性中設定庫的鏈結 int main 在標頭檔案或是包含標頭檔案下面新增...

DLL匯出函式

使用def檔案從dll匯出 模組定義 def 檔案時包含乙個或多個描述dll各種屬性的module語句的文字檔案。如果不使用 declspec dllexport 關鍵字匯出dll的函式,則dll需要.def檔案。def檔案必須至少包含下列模組定義語句 檔案中的第乙個語句必須是library語句。此...