VC DLL 動態鏈結庫 四

2022-07-17 04:12:06 字數 1743 閱讀 3695

dll 匯出類

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

接下來,我將演示在 dll 中定義 point 和 circle 兩個類, 並在應用工程中引用了他們。

//

point.h point 類的宣告

#ifnedf point_h

#define point_h#ifdef dll_file

class _declspec(dllexport) point //

匯出類 point

#else

class _declspec(dllimport) point //

匯入類 point

#endif

;#endif

//

point.cpp point 類的實現

#ifnedf 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

"#idnef 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 centrepoint)

//設定圓的半徑

void circle::setradius(float

r)

//

test.cpp 類的引用

#include "

..\\circle.h

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

intmain()

通過 dll 中的

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

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

來完成類的匯入和匯出。

VC DLL 動態鏈結庫 三

dll 匯出變數 dll 定義的全域性變數可以被呼叫的程序訪問,dll 也可以訪問呼叫程序的全域性資料,我們來看看在應用工程中引用 dll 中的變數 lib.h ifnedef lib h define lib h extern intdllglobalvar endif lib.cpp inclu...

VC DLL 動態鏈結庫 二

dll 中匯出函式的宣告有兩種 1.在之前給出的在函式宣告中加上 declspec dllexport 在這就不再列舉了 2.採用模組定義 def 檔案宣告,def 檔案為聯結器提供了有關被連線程式的的匯出,屬性及其他方面的資訊 下面讓我們看看怎樣用 def 檔案將函式 add 宣告為 dll 匯出...

VC DLL 動態鏈結庫 一

首先我們來說說靜態鏈結庫 靜態資料庫是指 lib 單獨使用,在編譯時直接加入程式當中,包含函式本身,不僅包含標頭檔案,還有原始碼,稱為靜態鏈結庫static link library。鏈結生成的程式可以獨立執行。即lib檔案是靜態編譯出來的,索引和實現都在其中。缺點是任何改動,都需要重新編譯 鏈結,...