VS2017动态链接库(.dll)的生成与使用
转 https://blog.csdn.net/m0_37170593/article/details/76445972
这里以VS2017为例子,讲解一下动态链接库(.dll)的生成与使用。
一、动态链接库(.dll)的生成
1、打开:“文件”-“新建”-“项目”
2、打开:“已安装”-“模板”-“Visual C++”-“Win32”-“Win32 控制台应用程序”
把文件“名称”加上,为自己的工程名称;把“位置”加上,为自己的工程所在位置;
3、点击:“下一步”
4、选择“DLL”和“空项目”
然后点击“完成”
5、右击“panny_dll”项目,点击“添加”,点击“新建项”
6、点击“c++文件(.cpp)”,写上文件的“名称”为“panny_dll.cpp”
7、同样添加“panny_dll.h”
8、在“panny_dll.cpp”中添加程序如下
#include "panny_dll.h"
int panny(int i, int(*call_back)(int a, int b))
{
int aa;
aa = i*i;
call_back(i, aa);
return 0;
}
9、在头文件“panny_dll.h”中添加如下代码
#pragma once
__declspec(dllexport) int panny(int i, int(*call_back)(int a, int b));
10、点击“生成”-“重新生成解决方案”
11、如图,成功。
12、生成了.dll和.lib的文件
二、使用.dll文件
1、新建项目
2、如图,添加项目名称为“panny_dll_test”
3、点击“下一步”
4、选择“控制台应用程序”和“空项目”,然后点击“完成”
5、把“.dll”和“.lib”放到如图的文件夹里面
6、把“panny_dll.h”放到如图的文件夹里面
7、添加一个新建项“panny_dll_test.cpp”,方法参考“一”中的“5和6”
8、在panny_dll_test.cpp文件夹里面添加如下代码
#include <stdio.h>
#include "panny_dll.h"
int panny_call_back(int a, int b)
{
int c;
c = a + b;
printf("输出:%d\n", c);
return 11;
}
void main()
{
int p = 10;
int panny1;
panny1 = panny(p, panny_call_back);
printf("输出2:%d\n", panny1);
}
9、添加头文件“panny_dll.h”
10、添加"panny_dll.lib"到资源文件
11、点击“重新生成解决方案”
12、成功
13、执行如下
VS2017动态链接库(.dll)的生成与使用的更多相关文章
- MinGW gcc 生成动态链接库 dll 的一些问题汇总 (补充)
我以前写过一个小短文,介绍MinGW gcc 生成动态链接库 dll 的一些问题.当时写的并不全面.近期又遇到写新的问题.这里记录一下,做个补充. 通常情况下,dll 中的函数假设採用 _stdcal ...
- 动态链接库DLL的创建生成及调用
一.背景 最近在做CANTOUSB底层驱动的调用,是调用别人已经封装好的库,看不到别人写的源程序.程序中调用的是隐式调用即 x.h+x.lib+x.dll,其中DLL即是动态链接库(Dynamic L ...
- dll = MinGW gcc 生成动态链接库 dll 的一些问题汇总
MinGW gcc 生成动态链接库 dll 的一些问题汇总 https://blog.csdn.net/liyuanbhu/article/details/42612365 网络上关于用 MinGW ...
- MinGW gcc 生成动态链接库 dll 的一些问题汇总(由浅入深,很详细)
网络上关于用 MinGW gcc 生成动态链接库的文章很多.介绍的方法也都略有不同.这次我在一个项目上刚好需要用到,所以就花了点时间将网上介绍的各种方法都实验了一遍.另外,还根据自己的理解试验了些网上 ...
- 编译可供C#调用的C/C++动态链接库dll文件
编译可供C#调用的C/C++动态链接库dll文件,C语言控制台应用程序,探索生成dll过程 由于项目需求,需要公司另一个团队提供相关算法支持,是用C语言编译好的dll库提供给我们进行调用. 但是拿到d ...
- VC++动态链接库(DLL)编程深入浅出(zz)
VC++动态链接库(DLL)编程深入浅出(zz) 1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用 ...
- VS2010编写动态链接库DLL及单元测试用例,调用DLL测试正确性
转自:http://blog.csdn.net/testcs_dn/article/details/27237509 本文将创建一个简单的动态链接库,并编写一个控制台应用程序使用该动态链接库,该动态链 ...
- [转] lib和dll 区别,生成及使用方法
lib 和 dll 的区别.生成以及使用详解 [目录] lib dll介绍 生成动态库 调用动态库 生成静态库 调用静态库 首先介绍一下静态库(静态链接库).动态库(动态链接库)的概念,首先两者都是代 ...
- 动态链接库 DLL
动态链接库DLL 不使用时不会有任何作用,只有在其他模块调用动态链接库中的函数时,它才发挥作用. 一.静态库与动态库 1.静态库 函数和数据被编译进一个二进制文件(.LIB),编译时,会将其组合起来创 ...
- 动态链接库dll,静态链接库lib, 导入库lib
转载地址:http://www.cnblogs.com/chio/archive/2008/08/05/1261296.html 目前以lib后缀的库有两种,一种为静态链接库(Static Libar ...
随机推荐
- wx :swipertab切换
<view> <view class="navbar"> <block wx:for="{{body}}" wx:key=&quo ...
- Oracle12C_____处理数据库01033连接错误问题.sql
Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation.保留所有权利. C:\Users\Administrator&g ...
- Oracle基础
一.Oracle数据库与实例区分 Oracle数据库是存在电脑磁盘中的文件 实例是存在内存中的进程 我们是通过操作实例间接操作数据库的 我们操作结果都存在内存缓存中,当我们提交事务时,才将修改数据记录 ...
- Django框架第一篇基础
一个小问题: 什么是根目录:就是没有路径,只有域名..url(r'^$') 补充一张关于wsgiref模块的图片 一.MTV模型 Django的MTV分别代表: Model(模型):和数据库相关的,负 ...
- 添加按钮 table增加一行 删减按钮 table去掉一行
需求描述:做的一个AA新增功能,同时可以为这个即将新增的AA添加内容,而且AA的内容默认展示一行列表,点击添加按钮后出现下一行列表 解决思路:页面首先展示一个表头和列表的一行,作为默认展示的一行列表, ...
- sqlmap实例文档
sqlmap 手册参数整理文档 1.--data sqlmap -u "http://www.target.com/vuln.php" --data="id=1" ...
- poj2728 生成树01分数规划 (二分答案)
给定整数序列a,b,求出下式的最大值 sum{ai*xi}/sum{bi*xi},xi=0|1 通俗来说,就是选出一些整数对(ai,bi),使得选出的a之和与选出的b之和商最大化 二分答案L,即选出的 ...
- 修改jenkins发布账号信息
- Jmeter 传值对比
${XXX}----------------------->在同一线程内可任务调用变量: vars.put(row,rowNum); ----------------------->var ...
- Spring.Net 简单实例-01(IOC)
1.话不多说看操作.新建"Windows窗体应用程序" 2:通过配置文件创建IOC容器 首先引入安装包 3:定义一个接口(更好的体现封装性,当然也可以直接使用类) 定义一个类,实现 ...