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語句。此...