VC创建DLL动态链接库及其调用
生活随笔
收集整理的這篇文章主要介紹了
VC创建DLL动态链接库及其调用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.1 創建dll項目
1.2 為dll項目編寫源文件
頭文件dllDemo.h
extern "C" _declspec(dllexport) int Sum(int a,int b);//加法函數。
extern "C" _declspec(dllexport) int Max(int a, int b);//取較大值函數
extern "C" _declspec(dllexport) int Min(int a, int b);//取較小值函數
源文件dllDemo.cpp
#include "dllDemo.h"extern "C" _declspec(dllexport)int Sum(int a, int b)
{return a+b;}
extern "C" _declspec(dllexport)int Max(int a, int b)
{
??? if(a>=b)
??????? return a;
??? else
??????? return b;
}
extern "C" _declspec(dllexport)int Min(int a, int b)
{
??? if(a>=b)
??????? return b;
??? else
??????? return a;
}
1.3 生成dll文件
編譯源文件,如果沒有出現錯誤提示,那么,在項目文件根目錄的Debug文件夾內會生成
一個dll文件“dllDemo.dll”。
??
2 DLL調用
2.1 用C++調用顯式鏈接
新建一個Win32的控制臺程序進行顯式調用:
2. 新建cpp文件“UseDll.cpp”
3. 將在第一節中,在Debug目錄下編譯生成的“dllDemo.dll”(顯式調用時只需要這一
個文件就夠了)文件復制到“UseDll”項目下的Debug文件夾根目錄下
4. 在“UseDll.cpp”文件中編寫以下代碼對dll中的函數進行顯式調用?
代碼:#include <iostream>
#include< windows .h>
using namespace std;
void main(void)
{
?typedef int(*pMax)(int a,int b);
?typedef int(*pMin)(int a,int b);
?pMax Max=NULL;
?pMin Min=NULL;
?HINSTANCE hDLL;
?hDLL=LoadLibrary("dllDemo.dll");//加載動態鏈接庫dllDemo.dll文件;
?Max=(pMax)GetProcAddress(hDLL,"Max");
?Min=(pMin)GetProcAddress(hDLL,"Min");
?if (Max)//如果取出函數成功,則執行下面的語句
?{
??int A=Max(5,8);
??cout<<"比較的結果為"<<A<<endl;
?}
?if (Min)
?{
??int B=Min(5,8);
??cout<<"比較的結果為"<<B<<endl;
?}
?FreeLibrary(hDLL);//卸載MyDll.dll文件
}
5、運行效果如下:
原網站上的文章里面代碼有點小小的錯誤,在這里我已經修改好了。可能還存在不足之處,望多包涵!
?
?
//
?轉載:http://www.2cto.com/kf/201205/132151.html
總結
以上是生活随笔為你收集整理的VC创建DLL动态链接库及其调用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 文件和目录 当前目录以及
- 下一篇: QT中的QButtonGroup