这篇文章主要介绍“c++如何封装成DLL并调用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++如何封装成DLL并调用”文章能帮助大家解决问题。第一步:编写.cpp和.h文件本例工程名称为RunL
这篇文章主要介绍“c++如何封装成DLL并调用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++如何封装成DLL并调用”文章能帮助大家解决问题。
本例工程名称为RunLIB
.cpp如下:
#include "pch.h"#include<iOStream>class FHello :public IInterface{public:FHello();virtual void Init();virtual void Destroy();virtual char* GetName();private:char name[1024];};FHello::FHello(){memset(name, 0, 1024);strcpy(name, "hello");}void FHello::Init(){printf("FHello::Init\n");}void FHello::Destroy(){printf("FHello::Destroy\n");}char* FHello::GetName(){return name;}IInterface* IInterface::CreateInterface(){return new FHello();}
.h如下:
#ifndef PCH_H#define PCH_H#define _CRT_SECURE_NO_WARNINGS#define FENGZHUANGCPP_api __declspec(dllexport) //导出//动态链接库class FENGZHUANGCPP_API IInterface{public:static IInterface* CreateInterface();virtual void Init() = 0;virtual void Destroy() = 0;virtual char *GetName() = 0;};#endif //PCH_H
①右键解决方案资源管理器的工程名称>>属性>>属性配置>>常规>>配置类型,将配置类型选为动态库(.dll),点击确定
②右键解决方案资源管理器的工程名称,选择生成
③右键解决方案资源管理器的工程名称>>属性>>属性配置>>常规>>配置类型,将配置类型选为静态库(.lib),点击确定
④右键解决方案资源管理器的工程名称,选择生成
此时,会在工程路径下的x64\Debug文件夹中看到你所生成的.dll和.lib文件(比如我的在:E:\C++\RunLIB\x64\Debug路径中)
到这里,我们已经完成了封装的过程,那么我们应该如何调用我们的接口呢?
①将生成的.dll和.lib,以及pch.cpp放在一个名为dllib的文件夹中(为了后面调用)
②使用vs新建一个名为diaoyong的工程(同时会自动生成一个diaoyong.cpp),将①的文件夹复制到工程目录下
③在diaoyong.cpp输入调用的代码
#include "dlllib/pch.h"#include <iostream>using namespace std;#pragma comment(lib,"dLLL.lib")//动态库在运行时,会把代码链接到目标//静态库在编译期,会把代码链接到目标int main(){ IInterface* IF = IInterface::CreateInterface(); cout << IF->GetName() << endl; IF->Init(); IF->Destroy(); return 0;}
此时,运行会出现如下报错,是因为我们没有把包含.lib的文件夹路径加载进来,我们需要执行的操作:
1)右键解决方案资源管理器的工程名称>>属性>>配置属性>>C/C++>>附加包含目录>>编辑>>.lib文件的路径放进去
2)右键解决方案资源管理器的工程名称>>属性>>项目属性>>配置属性>>链接器>>附加库目录>>编辑>>.lib文件的路径放进去
加载完成后,在运行我们编写的diaoyong.cpp,就成功啦!!!!
关于“C++如何封装成DLL并调用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网其他教程频道,小编每天都会为大家更新不同的知识点。
--结束END--
本文标题: C++如何封装成DLL并调用
本文链接: https://www.lsjlt.com/news/350451.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0