我們就從新建工程開始:
(1)開啟vs2010,檔案->新建->專案,選擇win32專案
(2)工程名叫做「win32dll」,在點選確定後彈出的對話方塊中選擇dll這一項,並勾選匯入符號選項,點選完成
這樣乙個建立dll的工程就做好了,其實dll的編寫就是類的一種封裝,格式完全可以按照c++中類的寫法去完成,下面我改寫了另乙個老兄的例子:
1.在win32dll.h中的類cwin32dll 裡新增:
classwin32dll_api cwin32dll ;
extern win32dll_api int
nwin32dll;
//這裡尤其要注意,當你想建立乙個非成員函式時
win32dll_api void printfvalue(const
int &);
win32dll_api
int fnwin32dll(void);
2.以上類中尤其要注意非成員函式的的宣告,之後便是在win32dll.cpp中的函式實現
cwin32dll::cwin32dll()void cwin32dll::set(int
v)void
cwin32dll::printfvalue()
void cwin32dll::set_str(const std::string &str)
void
cwin32dll::printf_str()
void printfvalue(const
int &v)
以上工作都做完後,進行編譯鏈結,在工程debug下就可以看到我們生成的.dll檔案和.lib檔案
3.在同乙個解決方案裡新建乙個win32控制台專案名叫testwin32dll
在這裡我們要用到我們在上個工程中生成的庫檔案
如下是testwin32dll.cpp中的實現:
#include "stdafx.h
"#include
"../win32dll/win32dll.h
"#pragma comment(lib,"d:/my documents/visual studio 2010/projects/win32dll/debug/win32dll.lib")
int _tmain(int argc, _tchar*ar**)
執行一下試試!
建立C 動態鏈結庫 dll
先來一段vc 給我們提供的標準模板 ifdef connection exports define connection api declspec dllexport else define connection api declspec dllimport endif 此類是從 connectio...
動態鏈結庫DLL
函式和資料被編譯進乙個二進位制檔案 通常擴充套件名為.lib 靜態庫 在使用靜態庫的情況下,在編譯鏈結可執行檔案時,鏈結器從庫中複製這些函式和資料並把它們和應用程式的其它模組組合起來建立最終的可執行檔案 exe檔案 在多個同樣的程式執行時,系統保留了許多重複的 副本,造成記憶體資源浪費。動態庫 使用...
動態鏈結庫DLL建立和使用
到目前為止剛剛開始接觸dll dynamic link library 一邊看書,一邊建立了乙個dll檔案,然後進行了dll檔案的使用,具體操作以及 如下 1 createdll工程的建立,工程型別為win32下的dll型別 生成的程式入口函式為 bool apientry dllmain hmod...