300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > VC创建DLL动态链接库及其调用

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

时间:2019-02-03 16:12:56

相关推荐

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、运行效果如下:

原网站上的文章里面代码有点小小的错误,在这里我已经修改好了。可能还存在不足之处,望多包涵!

//

转载:/kf/05/132151.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。