VC创建DLL动态链接库及其调用
来源:互联网 发布:c语言大小写字母转换 编辑:程序博客网 时间:2024/06/08 06:39
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
0 0
- VC创建DLL动态链接库及其调用
- VC++6.0如何创建与调用动态链接库(dll)
- VC++6.0如何创建与调用动态链接库(dll)
- VC++:创建,调用MFC动态链接库(扩展DLL)
- 用VC创建DLL动态链接库
- VC++:创建,调用Win32动态链接库
- Java jna学习之----VC++2010创建并调用动态链接库dll
- 【VC++DLL动态链接库编程】DLL动态链接库创建(4)
- VC中动态链接库dll文件的调用
- labview调用VC++生成的动态链接库DLL
- VC动态链接库DLL
- VC动态链接库DLL
- C#创建和调用DLL动态链接库
- VS2008创建和调用DLL动态链接库
- codeblocks中创建和调用动态链接库(dll)
- QT动态链接库(DLL)的创建和调用
- c++调用与创建动态链接库(dll)
- 【动态链接库】VC++2010中创建和使用动态链接库dll
- 每瓶汽水1元,两个空瓶可以置换一瓶汽水,现在有20元,最多能喝多少瓶汽水。(编程实现)。
- 【HDU】4920 - Matrix multiplication(矩阵相乘)
- WampServer下PHP5.5连SQLServer
- 函数递归与栈的关系
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- VC创建DLL动态链接库及其调用
- 【题解】Leetcode.371. Sum of Two Integers
- 相对论初识
- 数据库三范式讲解
- Find a Mother Vertex in a Graph
- iOS实现简书的登录验证方式(极验验证)
- 设计模式之备忘录模式
- hdu5768Lucky7(容斥+中国剩余定理+快速乘)
- poj 3279 <枚举+判断破解----点亮灯泡>