日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

VC创建DLL动态链接库及其调用

發(fā)布時(shí)間:2024/7/23 c/c++ 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VC创建DLL动态链接库及其调用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.1 創(chuàng)建dll項(xiàng)目





1.2 為dll項(xiàng)目編寫源文件



頭文件dllDemo.h
extern "C" _declspec(dllexport) int Sum(int a,int b);//加法函數(shù)。
extern "C" _declspec(dllexport) int Max(int a, int b);//取較大值函數(shù)

extern "C" _declspec(dllexport) int Min(int a, int b);//取較小值函數(shù)



源文件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文件

編譯源文件,如果沒(méi)有出現(xiàn)錯(cuò)誤提示,那么,在項(xiàng)目文件根目錄的Debug文件夾內(nèi)會(huì)生成

一個(gè)dll文件“dllDemo.dll”。

?
?

2 DLL調(diào)用


2.1 用C++調(diào)用顯式鏈接




新建一個(gè)Win32的控制臺(tái)程序進(jìn)行顯式調(diào)用:


1. 新建“UseDll”的Win32控制臺(tái)程序項(xiàng)目


2. 新建cpp文件“UseDll.cpp”


3. 將在第一節(jié)中,在Debug目錄下編譯生成的“dllDemo.dll”(顯式調(diào)用時(shí)只需要這一


個(gè)文件就夠了)文件復(fù)制到“UseDll”項(xiàng)目下的Debug文件夾根目錄下


4. 在“UseDll.cpp”文件中編寫以下代碼對(duì)dll中的函數(shù)進(jìn)行顯式調(diào)用?

代碼:
#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");//加載動(dòng)態(tài)鏈接庫(kù)dllDemo.dll文件;
?Max=(pMax)GetProcAddress(hDLL,"Max");
?Min=(pMin)GetProcAddress(hDLL,"Min");
?if (Max)//如果取出函數(shù)成功,則執(zhí)行下面的語(yǔ)句
?{
??int A=Max(5,8);
??cout<<"比較的結(jié)果為"<<A<<endl;
?}
?if (Min)
?{
??int B=Min(5,8);
??cout<<"比較的結(jié)果為"<<B<<endl;
?}
?FreeLibrary(hDLL);//卸載MyDll.dll文件

}

5、運(yùn)行效果如下:




原網(wǎng)站上的文章里面代碼有點(diǎn)小小的錯(cuò)誤,在這里我已經(jīng)修改好了。可能還存在不足之處,望多包涵!

?

?

//

?轉(zhuǎn)載:http://www.2cto.com/kf/201205/132151.html


總結(jié)

以上是生活随笔為你收集整理的VC创建DLL动态链接库及其调用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。