程序员必知:VS2017动态链接库(.dll)的生成与使用

简介: 程序员必知:VS2017动态链接库(.dll)的生成与使用

这里以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 = ii;

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

#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);

}//代码效果参考:http://www.ezhiqi.com/bx/art_5577.html

9、添加头文件“panny_dll.h”

10、添加"panny_dll.lib"到资源文件

11、点击“重新生成解决方案”

12、成功

13、执行如下

常用软件开发学习资料目录(详见我爱分享资源论坛):

1.经典编程电子书收藏

2.CC++编程学习资料收藏

3.算法及数据结构(有关c,c++,java)

4.Java开发学习资料收藏

5.Android开发学习资料收藏

6.Python开发学习资料收藏

7.大数据,机器学习,人工智能资料收藏

8.Docker资料收藏

相关文章
|
2月前
|
机器学习/深度学习 监控 算法
基于YOLO26的电梯内电瓶车检测识别(中英文双版) | 附完整源码与效果演示
本文提出了一种基于YOLO26深度学习算法的电梯内电瓶车检测识别系统。该系统通过部署在电梯内的摄像头实时采集视频流,利用训练好的YOLO26模型对画面中的目标进行检测,准确识别出自行车和电动摩托车两类目标,从而实现对违规行为的智能预警和拦截。
|
缓存 小程序 前端开发
【Uniapp】小程序携带Token请求接口+无感知登录方案2.0
【Uniapp】小程序携带Token请求接口+无感知登录方案2.0
903 0
|
10月前
|
数据可视化 Serverless 计算机视觉
合成孔径雷达,非线性调频信号的MATLAB程序,NLFM信号
合成孔径雷达,非线性调频信号的MATLAB程序,NLFM信号
314 0
|
机器学习/深度学习 人工智能 算法
程序员必知:VS2017动态链接库(.dll)的生成与使用
程序员必知:VS2017动态链接库(.dll)的生成与使用
1202 0
Cmake生成指定vs版本的工程文件
本文简单总结了使用 cmake 生成 visual studio 工程文件的过程
|
安全 编译器 API
程序与技术分享:C#调用DLL的几种方法
程序与技术分享:C#调用DLL的几种方法
2178 0
|
Go
Go 定时器:Timer 和 Ticker
本文深入探讨了 Go 语言中的 Timer 和 Ticker 定时器,详细介绍了它们的创建方式、基本用法以及相关的方法等。此外,文章还概括了这两个定时器之间的主要区别,并强调了在使用过程中的注意事项。
762 2
Go 定时器:Timer 和 Ticker
|
算法 Java 调度
Semaphore实现原理全面解析
Semaphore(信号量)是一个同步工具类,通过Semaphore可以控制同时访问共享资源的线程个数。
|
JavaScript 前端开发
vue前端获取本地IP地址
vue前端获取本地IP地址
|
Windows
Qt 5.14.2 打造跨平台应用的秘诀:用Visual Studio 2022和Qt 5.14.2轻松创建你的首个QT项目
Qt 5.14.2 打造跨平台应用的秘诀:用Visual Studio 2022和Qt 5.14.2轻松创建你的首个QT项目
1914 0

热门文章

最新文章