建立
1.建立DLL
2.在頭檔案建立myDll.h,在源檔案建立myDll.cpp,在資源檔案建立myDll.def(三個名字要一樣)
3.在myDll.h與myDll.cpp分别寫入如下代碼:
//myDll.h
#pragma once
#define EXPORT_DLL _declspec(dllexport)
extern "C" EXPORT_DLL void Create(char *s);
extern "C" EXPORT_DLL void Destroy(char *s);
//myDll.cpp
#include "myDll.h"
void Create(char *a)
{
*a = 'C';
}
void Destroy(char *a)
{
*a = 'D';
}
//myDll.def
; myDll.def : Declares the module parameters for the DLL.
LIBRARY "myDll"
EXPORTS
; Explicit exports can go here
Create
Destroy
注意,要右鍵解決方案,配置myDll在Win32下,右鍵myDll ->屬性可檢視
4.生成myDll.lib 與 myDll.dll
右鍵myDll項目,在配置屬性的正常中,修改配置類型為動态庫dll
修改完後,右鍵myDLL,點選生成
可以看到myDLL.lib與myDll.dll已生成
至此已完成一個自己設計的dll動态庫。
調用
建立一個C++空項目Dlltest,同上也将該項目設定為Win32環境下運作
在Dlltest.cpp寫上如下代碼:
//Dlltest.cpp
#include<iostream>
#include<myDll.h>
using namespace std;
int main()
{
char c = 'A';
char *p = &c;
cout << *p << endl;
Create(p);
cout << *p << endl;
Destroy(p);
cout << *p << endl;
system("pause");
return 0;
}
在運作前,要進行頭檔案與動态庫的配置!
1.為了規範,Dlltest項目目錄下,建立include目錄,放之前建立的myDll.h;建立lib目錄,放入myDll.lib。
最後将myDll.dll放入該目錄
2.右鍵Dlltest項目,屬性中配置,在附加包含目錄、附加庫目錄、附加依賴項分别選擇剛剛建立的include檔案夾、剛剛建立的lib檔案夾、填入“myDll.lib”三個操作
3.運作Dlltest,若一切配置正确,運作結果如下
至此,調用自己的dll已成功
參考文獻
.h(頭檔案) .lib(庫檔案) .dll(動态連結庫檔案) 之間的關系和作用的區分
3分鐘完成在VS建立一個DLL并調用
vs2013下動手寫*.dll檔案并調用它
用 VS 建立 DLL 的方法和坑 (C++)
VS建立動态連結庫Dll步驟
如何編譯生成dll檔案以及如何調用dll檔案
MFC(C++)中 __declspec(dllexport) 和 __declspec(dllimport)的作用
淺談__declspec(dllexport)和__declspec(dllimport)
用C++建立屬于自己的類庫?
如何在編譯器(vs2010)裡設定調用别人寫好的lib和dll