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;为把“高高…

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

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

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

来源&#xff1a;网络大数据摘要&#xff1a;近日&#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;顶级人…

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…

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

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

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

来源&#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…

万字长文解读运营商搏击5G:一场比拼财力的三国杀

来源&#xff1a;财经无忌摘要&#xff1a;5G时代已经来临&#xff0c;5G走向商用的步伐也在逐渐加快。近日&#xff0c;腾讯科技联合优质科技媒体推出“5G局中局”系列文章&#xff0c;为你解读5G在通讯、物联网、车联网、工业联网、边缘计算、云服务等各行业的应用&#xff0…

MVP

MVP是一种广泛使用的UI架构模式&#xff0c;适用于基于事件驱动的应用框架。 能够与 Model直接进行交互的仅限于 Presenter, View 只能通过 Presenter 间拉地调用 Model。 MVP分PV&#xff08;Passive View) 和 &#xff08;Supervising Controller)两种模式 SC(Supervising Co…

OpenCV——图像显示与写入

1、图像显示与写入的代码如下&#xff1a; #include<opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp>using namespace cv; using namespace std; //opencv中图像显示与写入 int main() {Mat myMat imread("小狗1.jpg", -1);if (myMat.em…

工业3D打印:一场仍处在初级阶段的技术革命

来源&#xff1a;资本实验室摘要&#xff1a;曾记否&#xff0c;几年前当我们在实体店看到3D打印机打印出的一个个小玩意时&#xff0c;那种油然而生的新鲜与神奇感&#xff1f;然而&#xff0c;短短几年&#xff0c;面对这种新事物&#xff0c;我们已经见怪不怪。此外&#xf…

OpenCV——读取视频文件并写入文件

1、代码如下&#xff1a; #include<opencv2/opencv.hpp> using namespace cv;//-----------------------------------【main()函数】-------------------------------------------- // 描述&#xff1a;控制台应用程序的入口函数&#xff0c;我们…

人工智能的现状与未来(附PPT)

来源&#xff1a;网经科技摘要&#xff1a;人工智能引领新的工业革命&#xff0c;需要正确理解其技术核心、学科定位、架构演进&#xff0c;当前深度学习和知识图谱成其左膀右臂&#xff0c;象征人类智谋的智能博弈在围棋后的下一个高地在哪里&#xff1f;走向人机融合的未来&a…

【最新】三位深度学习创始人共同获得了2019年公布的图灵奖

来源&#xff1a;biendata数据实战派2019年3月27日 ——ACM宣布&#xff0c;深度学习的三位创造者Yoshua Bengio, Yann LeCun, 以及Geoffrey Hinton获得了2019年的图灵奖。今天&#xff0c;深度学习已经成为了人工智能技术领域最重要的技术之一。在最近数年中&#xff0c;计算机…