目录
什么是dll文件
把c++函数变为dll有什么好处
开始教程
打开Visual Studio 2022创建
调整编译器设置
创建头文件
DLL1.h
创建源文件编辑函数内容
DLL1.cpp
编译成dll文件
什么是dll文件
DLL(Dynamic Link Library,动态链接库)是一种包含可被多个程序共享的代码和数据的文件格式。它可以被动态链接到程序中,在程序运行时提供所需的功能和服务。DLL 文件通常包含函数、类、变量和资源等,可以被其他程序调用和使用。使用 DLL 可以实现代码的复用、模块化开发和提高程序性能等好处。
把c++函数变为dll有什么好处
-
代码复用:通过将函数导出为 DLL,可以将函数封装在独立的库中,供其他程序重复使用,避免重复实现相同的功能,提高代码的复用性。
-
模块化开发:将函数导出为 DLL 可以帮助实现模块化开发,即将程序划分为多个模块,每个模块对应一个或多个 DLL,方便团队协作,每个人负责不同的模块。
-
提高性能:将常用的函数导出为 DLL,可以提高程序的运行效率。由于 DLL 是被动态链接的,它们可以被多个程序共享,减少内存使用。
-
保护知识产权:通过将核心代码封装在 DLL 中,可以保护知识产权,只将 DLL 提供给需要的人使用,不需要对源代码进行公开。
并且在python中你可以调用你自己编写的dll文件从而既可以最大的加快代码的运行速度(因为是用C++写的快了不止一点),又能达到你想要的效果。
开始教程
打开Visual Studio 2022创建
打开Visual Studio 2022选择创建新项目
搜索dll或者动态链接库
我选择的是第一个
进入后出现了
除了划红线的
其他的打开会自己创建
调整编译器设置
进入调试中的调试属性
确保红框一致
(如果是64位就最好是64位)
创建头文件
头文件结构为
DLL1.h
#pragma once
#ifndef _DLL1_H
#define _DLL1_H
#define DLL1_API extern "C" _declspec(dllexport)
DLL1_API double Add_sum(int n);
#endif // DEBUG
其中开头的
#pragma once
#ifndef _DLL1_H
#define _DLL1_H
是宏定义为头文件必须的
#define DLL1_API extern "C" _declspec(dllexport)
这是告诉编译器是以c/c++语言编辑的
接下来就是定义函数的格式,在头文件中只是声明不进行编辑
DLL1_API double Add_sum(int n);
最后再加一句
#endif // DEBUG
创建源文件编辑函数内容
函数为计算2的n次方......这里不用在意函数内容
DLL1.cpp
#include "DLL1.h"
#include "iostream"
using namespace std;
// 传入参数位数字,无返回,输出num的平方
DLL1_API double Add_sum(int n)
{
if (n == 0)
return 1.0;
int max = 1;
int i = 2;
double j = 1 / 2;
while (n != 0)
{
int sum_1 = n % 2;
if (n > 0)
{
if (n == 1)
max *= i;
i = i * i;
n = n / 2;
}
else
{
if (n == 1)
max *= i;
j = j * j;
n = n / 2;
}
}
return max;
}
编译成dll文件
点击重新生成
这样如果没报错得到话就会生成一个dll文件
在当前目录下
做这一期的原因是python代码有时运行的速度很慢,但是python的包使用很便捷不想抛弃,所以用c语言优化一部分代码来实现加快程序运行速度