程序员必知: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月前
|
小程序
在Masm32中如何静态链接自己编写的库文件
在Masm32中如何静态链接自己编写的库文件
|
5月前
|
机器学习/深度学习 人工智能 算法
程序员必知:VS2017动态链接库(.dll)的生成与使用
程序员必知:VS2017动态链接库(.dll)的生成与使用
71 3
|
IDE Java 开发工具
JNI学习(2)——生成动态链接.dll文件
JNI学习(2)——生成动态链接.dll文件
162 0
JNI学习(2)——生成动态链接.dll文件
|
编译器 C++ 开发者
头文件.h、动态链接库.dll、静态链接库.lib的区别与应用总结
头文件.h、动态链接库.dll、静态链接库.lib的区别与应用总结
1010 0
头文件.h、动态链接库.dll、静态链接库.lib的区别与应用总结
|
C++ Python
如何在MFC中启动其它的(.exe)可执行文件
ShellExecute(NULL,   "open",   "http://www.sina.com.cn",   NULL,   NULL,   SW_SHOWNORMAL);      // ShellExecute(NULL,   "open",   "C:\\Documents and Settings\\Administrator\\桌面\\xq1\\TestChess0.
1548 0
|
程序员 开发工具 C语言
|
安全 API 网络安全