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檔案是靜態編譯出來的,索引和實現都在其中。缺點是任何改動,都需要重新編譯 鏈結,...