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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492387.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

10个免费开源的JS音乐播放器插件

点这里 音乐播放器在网页设计中有时候会用到&#xff0c;比如一些时尚类、音乐或影视类等项目&#xff0c;但这些 网页播放器 插件比较少见&#xff0c;所以这里为大家整理一个集合&#xff0c;也许会有用到的时候。 下面整理的播放器有些是支持自适应的&#xff0c;如果需要用…

用上AI、用好AI!AiRiA研究院“普惠AI,芯向边缘”战略发布会圆满举行

近年来&#xff0c;在万物智联的趋势下&#xff0c;物联网产业从概念炒作进入加速落地的实质性阶段&#xff0c;端侧数据处理能力与云端数据处理能力已变的同等重要&#xff0c;而AI芯片从“云端”走向“边缘”已呈现出不可逆的趋势。值此AI落地初探之年&#xff0c;为把“高高…

设置DIV半透明CSS代码:

设置DIV半透明CSS代码&#xff1a; div{filter:alpha(Opacity80);-moz-opacity:0.5;opacity: 0.5;} 说明&#xff1a; 1、filter&#xff1a;对win IE设置半透明滤镜效果&#xff0c;filter:alpha(Opacity80)代表该对象80%半透明&#xff0c;火狐浏览器不认 2、-moz-opacity&am…

百年科技的历史回顾与哲学反思

来源&#xff1a;科学的历程摘要&#xff1a;科学的社会化和社会的科学化是科学的世纪里两个基本的标志。回顾百年科技历程&#xff0c;不只是讲述一个历史故事&#xff0c;更是反省我们当下的处境。19世纪是第一个科学的世纪&#xff0c;二十世纪是第二个&#xff0c;当然也是…

Java知多少(28)super关键字

super 关键字与 this 类似&#xff0c;this 用来表示当前类的实例&#xff0c;super 用来表示父类。super 可以用在子类中&#xff0c;通过点号(.)来获取父类的成员变量和方法。super 也可以用在子类的子类中&#xff0c;Java 能自动向上层类追溯。父类行为被调用&#xff0c;就…

怎样写出简洁的css代码??★★★★

base.css 设置各种默认值&#xff1a; html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, …

《中国大数据产业白皮书及百强榜单》:一览中国大数据产业发展全局

来源&#xff1a;网络大数据摘要&#xff1a;近日&#xff0c;赛迪顾问重磅发布了《中国大数据产业白皮书及百强榜单》。《中国大数据产业白皮书及百强榜单》从大数据整体市场方向分享了相关洞见&#xff0c;对大数据产业未来发展趋势进行了分析和预测。并梳理中国大数据投资价…

MVC3学习 八 Action和result过滤器及日志处理

在项目中很多地方需要用到面向切面的思想&#xff0c;比如说身份验证、日志功能这些。 过滤器可以理解为在执行某个功能时&#xff0c;额外执行的一段代码&#xff0c;在MVC中有Action和result过滤器&#xff0c; 分别都是在执行前和执行后进行过滤的&#xff0c;具体代码如下&…

万字报告做空特斯拉:马斯克在操盘一场“庞氏骗局”|硅谷封面

来源&#xff1a; 腾讯科技摘要&#xff1a;美国价值投资人俱乐部VIC日前发表文章&#xff0c;从产品需求减弱、安全性能差、资金缺口巨大、伊隆马斯克或被免职等多个角度着手进行分析&#xff0c;称目前是全力做空特斯拉&#xff08;纳斯达克证券代码&#xff1a;TSLA&#xf…

内存对齐的规则以及作用

首先由一个程序引入话题&#xff1a; 1 //环境&#xff1a;vc6 windows sp2 2 //程序13 #include <iostream>4 5 using namespace std;6 7 struct st1 8 {9 char a ;10 int b ;11 short c ;12 };13 14 struct st215 {16 short c ;17 char a ;18 …

中国AI创新者论坛成功举办!这里有一份AI教育和医疗的落地秘籍

来源&#xff1a;THU数据派3月21日&#xff0c;由网易新闻、网易有道、清华数据院共同举办的以“创新&#xff0c;无界”为主题的“中国AI创新者论坛”在清华大学罗姆楼三层报告厅成功举办。律回岁晚冰霜少&#xff0c;春到人间草木知&#xff0c;初春的北京&#xff0c;顶级人…

C语言有参函数调用时参数间数据传递问题

C语言中在发生有参函数调用时&#xff0c;实参变量与形参变量之间的数据都是单向的“值传递”方式。包括指针变量和数组名作参数的情况。 C语言要求函数的实参要有确定的值&#xff0c;在函数调用时给形参分配相应的内存单元&#xff0c;同时将实参的“值”赋&#xff08;复制&…

windows下jenkins slave 搭建

一 创建新的Slave 注意Jenkins中slave称为note。 所以下面文章中的slave和node指的是一回事。 1&#xff09;在Manage Jenkins-->Manage Nodes -->New Node下&#xff1a;输入Node Name&#xff0c;且选择Dumb Slave作为Slave的类型&#xff0c;然后OK。 2&#xff09;在…

MEMS:万物智联技术关键

来源&#xff1a;Research摘要&#xff1a;MEMS技术在汽车电子、生物医疗、智慧家庭、工业物联网、消费电子等领域都有着广阔的市场前景。随着万物互联时代的加快到来&#xff0c;MEMS传感器将迎来新的浪潮。一、MEMS 是什么1、MEMS 定义MEMS&#xff08;Microelectromechanica…

C语言 变量声明和定义的区别

变量的声明有两种情况&#xff1a; 1、一种是需要建立存储空间的。例如&#xff1a;int a 在声明的时候就已经建立了存储空间。 2、另一种是不需要建立存储空间的。 例如&#xff1a;extern int a 其中变量a是在别的文件中定义的。 前者是“定义性声明&#xff08;defining dec…

2019年25大人工智能趋势!一文看到未来

来源&#xff1a;智东西摘要&#xff1a;2019年25个AI趋势。人工智能的下一步是什么&#xff1f;上周&#xff0c;知名机构CBinsights的分析师分析各个行业&#xff0c;得到了2019年最值得关注的25个人工智能趋势。虽然人工智能正在各个行业蔓延&#xff0c;经常成为头条新闻&a…

tomcat server.xml配置详解

元素名属性解释serverport指定一个端口&#xff0c;这个端口负责监听关闭tomcat的请求shutdown指定向端口发送的命令字符串servicename指定service的名字Connector(表示客户端和service之间的连接)port指定服务器端要创建的端口号&#xff0c;并在这个断口监听来自客户端的请求…

重磅!首次发现人类大脑海马体在短时间尺度上对时间信息敏感

来源&#xff1a;brainnews编译&#xff1a;南樛木早期对啮齿动物海马体的研究提供了情景记忆中海马体表达时间信息的一般神经机制证据。对记忆编码的方式涉及到许多信息&#xff0c;科学家们已经研究了其中大部分是如何工作的。但是有一个维度仍未得到解决&#xff1a;时间。最…

2015新款 MacBook 用心的测评与试用. 最轻薄的Mac上市

2015新款 MacBook 不一样的测评与试用. 最轻薄的Mac上市了. 直击现场 《HTML开发MacOSApp教程》 http://pan.baidu.com/s/1jG1Q58M 2015年的春季的苹果特别媒体发布会上, 苹果发布了超轻薄的 MacBook 产品. 或许当你阅读本文的时候已经看过不少跑分, 性能测试文章, 为了不让…

数字图像处理——图像的几何变换

这次学习图像的几何变换&#xff0c;主要有以下内容&#xff1a;图像的平移变换图像的镜像变换图像的转置变换图像的旋转变换图像的缩放1、图像的平移变换在进行书写matlab代码之前&#xff0c;先来了解一下图像平移的理论基础。设图像的高度为H&#xff0c;宽度为W&#xff0c…