DLL中匯出類

2021-05-22 00:22:34 字數 1733 閱讀 5030

dll中定義的類可以在應用工程中使用。

下面的例子裡,我們在dll中定義了point和circle兩個類,並在應用工程中引用了它們。

//檔名:point.h,point類的宣告

#ifndef point_h

#define point_h

#ifdef dll_file

class _declspec(dllexport) point //匯出類point

#else

class _declspec(dllimport) point //匯入類point

#endif

;#endif

//檔名:point.cpp,point類的實現

#ifndef dll_file

#define dll_file

#endif

#include "point.h"

//類point的預設建構函式

point::point()

//類point的建構函式

point::point(float x_coordinate, float y_coordinate)

//檔名:circle.h,circle類的宣告

#ifndef circle_h

#define circle_h

#include "point.h"

#ifdef dll_file

class _declspec(dllexport)circle //匯出類circle

#else

class _declspec(dllimport)circle //匯入類circle

#endif

;#endif

//檔名:circle.cpp,circle類的實現

#ifndef dll_file

#define dll_file

#endif

#include "circle.h"

#define pi 3.1415926

//circle類的建構函式

circle::circle()

//得到圓的面積

float circle::getarea()

//得到圓的周長

float circle::getgirth()

//設定圓心座標

void circle::setcentre(const point ¢repoint)

//設定圓的半徑

void circle::setradius(float r)

類的引用:

#include "../circle.h"  //包含類宣告標頭檔案

#pragma comment(lib,"dlltest.lib");

int main(int argc, char *argv)

從上述源**可以看出,由於在dll的類實現**中定義了巨集dll_file,故在dll的實現中所包含的類宣告實際上為:

class _declspec(dllexport) point //匯出類point

和class _declspec(dllexport) circle //匯出類circle

而在應用工程中沒有定義dll_file,故其包含point.h和circle.h後引入的類宣告為:

class _declspec(dllimport) point //匯入類point

和class _declspec(dllimport) circle //匯入類circle

從DLL中匯出類

用def從dll匯出 乙個函式,或用 declspec dllexport 指令從dll中匯出乙個類,想必大家已經很熟悉了,也經常使用著。這裡向大家介紹一種用def檔案從dll匯出乙個類的方法。具體原理或為什麼就不廢話了,學會匯出後,再慢慢回味吧。這裡主要敘述操作步驟。1。開啟vc6.0,新建乙個 ...

從dll中匯出類

三 在客戶程式中使用dll 編譯乙個dll時將建立兩個檔案.dll檔案和.lib檔案。首先將這兩個檔案複製到客戶程式專案的資料夾裡,這裡需要注意dll和客戶程式的版本問題,盡量使用相同的版本,都使用release或者都是debug版本。接著就需要在客戶程式中設定lib檔案,開啟project set...

從DLL中匯出類

從dll中的匯出類,dll 如下 declspec dllexport stdcall class myclass 類 void stdcall myclass setvalue int a,int b 成員函式 int stdcall myclass add 成員函式 呼叫這個dll中,先要進行類...