平台:windows
编辑器: vs2019
自定义class="superseo">动态链接库自定义动态链接库的创建及使用方式有很多,学习自定义动态链接库时记录一下常用方式。
自定义动态链接库可导出函数和类,先使用简单的使用函数导出的
方式一: 创建生成动态链接库项目创建动态链接库项目,可选择空项目或动态链接库。
并设置项目属性,设置项目生成类型,即配置类型
- 声明函数
创建计算周长头文件,声明计算矩形周函数,并在.cpp文件中实现。
实现函数
源码:
calculateGirth.h
#ifndef _CALCULATEGIRTH_H_
#define _CALCULATEGIRTH_H_
extern "C" _declspec(dllexport) double getRectangleGirth(double width, double height);
#endif
calculateGirth.cpp
#include "calculateGirth.h"
//计算矩形周长
double getRectangleGirth(double width, double height)
{
return (width + height)* 2;
}
创建动态链接库使用项目
设置项目属性:
- 设置包含目录
包含目录:寻找#include 找到动态链接库头文件所在目录,复制路径,将该路径添加到包含目录中。 库目录:寻找.lib文件的搜索目录 找到动态链接库生成的 .lib 文件路径,将该路径添加到库目录 附加依赖项:lib库(C++的库通常会把函数、类的声明放在*.h中,实现放在*.cpp或*.cc中。 编译之后,*.cpp,*.cc,*.c会被打包成一个.lib文件,这样可以保护源代码) 找到我们生成的MyDllTest.lib 名称。 将其添加到附加依赖项中。 也可以直接在代码中直接使用 #pragma comment(lib, "MyDllTest.lib") 源码: usingDllTestMain.cpp 运行结果: 重新定义动态链接库头文件,适用于导出多个函数。 源码: 其实使用方法不变 欢迎分享,转载请注明来源:内存溢出#include
#ifndef _CALCULATEGIRTH_H_
#define _CALCULATEGIRTH_H_
#ifndef GIRTH_DLL_EXPORT
#define GIRTH_DLL_API extern "C" _declspec(dllexport)
#else
#define GIRTH_DLL_API extern "C" _declspec(dllimport)
#endif
GIRTH_DLL_API double getRectangleGirth(double width, double height);
#endif
评论列表(0条)