广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++如何封装成DLL并调用
  • 737
分享到

C++如何封装成DLL并调用

2023-07-05 07:07:14 737人浏览 薄情痞子
摘要

这篇文章主要介绍“c++如何封装成DLL并调用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++如何封装成DLL并调用”文章能帮助大家解决问题。第一步:编写.cpp和.h文件本例工程名称为RunL

这篇文章主要介绍“c++如何封装成DLL并调用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++如何封装成DLL并调用”文章能帮助大家解决问题。

第一步:编写.cpp和.h文件

本例工程名称为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

①右键解决方案资源管理器的工程名称>>属性>>属性配置>>常规>>配置类型,将配置类型选为动态库(.dll),点击确定

C++如何封装成DLL并调用

②右键解决方案资源管理器的工程名称,选择生成
③右键解决方案资源管理器的工程名称>>属性>>属性配置>>常规>>配置类型,将配置类型选为静态库(.lib),点击确定

C++如何封装成DLL并调用

④右键解决方案资源管理器的工程名称,选择生成
此时,会在工程路径下的x64\Debug文件夹中看到你所生成的.dll和.lib文件(比如我的在:E:\C++\RunLIB\x64\Debug路径中)

C++如何封装成DLL并调用

到这里,我们已经完成了封装的过程,那么我们应该如何调用我们的接口呢?

第三步:调用通过.h文件调用;

①将生成的.dll和.lib,以及pch.cpp放在一个名为dllib的文件夹中(为了后面调用)
②使用vs新建一个名为diaoyong的工程(同时会自动生成一个diaoyong.cpp),将①的文件夹复制到工程目录下

C++如何封装成DLL并调用

③在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文件的路径放进去

C++如何封装成DLL并调用

C++如何封装成DLL并调用

C++如何封装成DLL并调用

加载完成后,在运行我们编写的diaoyong.cpp,就成功啦!!!!

C++如何封装成DLL并调用

关于“C++如何封装成DLL并调用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网其他教程频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: C++如何封装成DLL并调用

本文链接: https://www.lsjlt.com/news/350451.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++如何封装成DLL并调用
    这篇文章主要介绍“C++如何封装成DLL并调用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++如何封装成DLL并调用”文章能帮助大家解决问题。第一步:编写.cpp和.h文件本例工程名称为RunL...
    99+
    2023-07-05
  • C++封装成DLL并调用的实现
    目录第一步:编写.cpp和.h文件第二步:生成动态链接库.dll和静态链接库.lib第三步:调用通过.h文件调用;使用vs2019将C++封装成DLL并调用主要有以下几个步骤: 1)...
    99+
    2023-03-01
    C++封装DLL C++ DLL调用
  • C++下如何将TensorFlow模型封装成DLL供C#调用
    目录生成dll使用C#调用dll生成dllIDE使用visual studio 2015。首先新建一个C++win32工程,选择dll,包括导出符号,但不要预编译头。模板会提供一个工...
    99+
    2022-11-13
    C++ TensorFlow模型 TensorFlow模型封装DLL C#调用DLL
  • C++ 封装 DLL 供 C# 调用详细介绍
    目录1、VLC代码封装1.1 QT(C++)工程1.2static 声明 m_instance 优化效率1.3封装 DLL1.4应用程序的导出函数1.5 vlc 简单封装的具体实现2...
    99+
    2022-11-12
  • c#如何调用c++的DLL
    这篇文章主要讲解了“c#如何调用c++的DLL”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c#如何调用c++的DLL”吧!C#是托管型代码,创建的对象会自动回收。C++是非托管型代码,创建...
    99+
    2023-06-30
  • C++ Builder如何调用Visual C++ DLL
    C++ Builder如何调用Visual C++ DLL,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。使用C++Builder调用Visual C++ DLL 创建的DL...
    99+
    2023-06-17
  • C#如何调用MFC窗口DLL
    目录C#调用MFC 窗口 DLLMFC DLLMFC DLL属性C# 调用 C++ MFC DLLC++ MFC DLL 的封装C# 中调用,CharSet须设置为多字节的 Ansi...
    99+
    2022-11-13
  • python如何调用封装函数
    在python中使用模块调用封装函数,具体方法如下:例:调用module模块中的sum函数import module #封装函数的文件名aa = module.sum(1, 2) #模块名.函数名print(aa)...
    99+
    2022-10-07
  • python自己封装的类如何调用
    要调用自己封装的类,需要按照以下步骤进行操作:1. 在代码中导入自己封装的类。例如,如果你的类定义在一个名为`myclass.py`...
    99+
    2023-08-24
    python
  • Visual Studio 2010如何调用非C#编写的DLL文件
    这篇文章主要介绍“Visual Studio 2010如何调用非C#编写的DLL文件”,在日常操作中,相信很多人在Visual Studio 2010如何调用非C#编写的DLL文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法...
    99+
    2023-06-17
  • 如何用C#做中间语言实现Java调用.net DLL
    如何用C#做中间语言实现Java调用.net DLL,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。51CTO曾经为大家讲过“Java与.NET的WebServices相互调...
    99+
    2023-06-17
  • Vue如何使用Vuex封装并使用store
    这篇文章主要介绍“Vue如何使用Vuex封装并使用store”,在日常操作中,相信很多人在Vue如何使用Vuex封装并使用store问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue如何使用Vuex封装并使...
    99+
    2023-07-04
  • 如何使用对象封装ajax重复调用
    这篇文章主要为大家展示了“如何使用对象封装ajax重复调用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用对象封装ajax重复调用”这篇文章吧。在项目中经...
    99+
    2022-10-19
  • form表单数据如何封装成json格式并提交给服务器
    小编给大家分享一下form表单数据如何封装成json格式并提交给服务器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、jsp代...
    99+
    2022-10-19
  • 基于CSS如何实现MaterialUI按钮点击动画并封装成React组件
    这篇文章主要介绍基于CSS如何实现MaterialUI按钮点击动画并封装成React组件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!正文首先我们看一下materialUI的按钮点击效果:本质上也是用了css3动画的...
    99+
    2023-06-25
  • c语言如何定义函数并调用
    在C语言中,函数定义的一般形式如下:返回值类型 函数名(参数列表){函数体}其中,返回值类型是函数执行完后返回的值的类型,可以是整数...
    99+
    2023-09-27
    c语言
  • Oracle调用Java方法(上)如何使用LoadJava命令和如何将简单的Jar包封装成Oracle方法
    最近在工作中遇到了遇到了一个需求需要将TIPTOP中的数据导出成XML并上传到FTP主机中,但是4GL这方面的文档比较少最终决定使用Oracle调用Java的方法,在使用的过程中发现有很多的坑,大部分的博客只粗略的介绍了下导致耗费...
    99+
    2020-12-29
    Oracle调用Java方法(上)如何使用LoadJava命令和如何将简单的Jar包封装成Oracle方法
  • C#如何调用exe传参并获取打印值
    这篇文章给大家分享的是有关C#如何调用exe传参并获取打印值的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。调用方法:string baseName = System.IO.Direc...
    99+
    2023-06-14
  • 如何使用js的闭包原理做对象封装及调用方法
    这篇文章主要为大家展示了“如何使用js的闭包原理做对象封装及调用方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用js的闭包原理做对象封装及调用方法”这...
    99+
    2022-10-19
  • C++如何调用opencv完成运动目标捕捉详解
    目录一、原理说明:二、过程详解:总结使用编译器:Qt Creator 4.2.1  一、原理说明: 差帧识别原理:将这一帧的图像和上一帧的图像进行比对,产生变化的即为运动的...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作