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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

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

發布時間:2024/7/23 c/c++ 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的控制臺程序進行顯式調用:


1. 新建“UseDll”的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动态链接库及其调用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。