iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++封装成DLL并调用的实现
  • 377
分享到

C++封装成DLL并调用的实现

C++封装DLLC++DLL调用 2023-03-01 17:03:07 377人浏览 八月长安
摘要

目录第一步:编写.cpp和.h文件第二步:生成动态链接库.dll和静态链接库.lib第三步:调用通过.h文件调用;使用vs2019将c++封装成DLL并调用主要有以下几个步骤: 1)

使用vs2019将c++封装成DLL并调用主要有以下几个步骤:

1)新建工程,编写要封装的.cpp和.h文件;
2) 生成动态链接库.dll和静态链接库.lib;
3) 调用通过.h文件调用;

第一步:编写.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),点击确定

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

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

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

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

①将生成的.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并调用的实现的文章就介绍到这了,更多相关C++封装成DLL并调用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++封装成DLL并调用的实现

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

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

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

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

下载Word文档
猜你喜欢
  • C++封装成DLL并调用的实现
    目录第一步:编写.cpp和.h文件第二步:生成动态链接库.dll和静态链接库.lib第三步:调用通过.h文件调用;使用vs2019将C++封装成DLL并调用主要有以下几个步骤: 1)...
    99+
    2023-03-01
    C++封装DLL C++ DLL调用
  • C++如何封装成DLL并调用
    这篇文章主要介绍“C++如何封装成DLL并调用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++如何封装成DLL并调用”文章能帮助大家解决问题。第一步:编写.cpp和.h文件本例工程名称为RunL...
    99+
    2023-07-05
  • 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+
    2024-04-02
  • C#生成带注释的dll并引用实现
    目录一. 编写.cs文件二. 生成XML文件注释三. 打开MSBuild Command Prompt for VS2015生成dll文件四. 使用另一个项目引用...
    99+
    2024-04-02
  • c#调用c++的DLL的实现方法
    目录1.采用托管的方式进行调用,就和正常调用c#的dll一样2.非托管的方式进行调用C#是托管型代码,创建的对象会自动回收。C++是非托管型代码,创建的对象需要手动回收(有时不手动回...
    99+
    2024-04-02
  • Vue3+TypeScript封装axios并进行请求调用的实现
    不是吧,不是吧,原来真的有人都2021年了,连TypeScript都没听说过吧?在项目中使用TypeScript虽然短期内会增加一些开发成本,但是对于其需要长期维护的项目,TypeS...
    99+
    2024-04-02
  • c#如何调用c++的DLL
    这篇文章主要讲解了“c#如何调用c++的DLL”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c#如何调用c++的DLL”吧!C#是托管型代码,创建的对象会自动回收。C++是非托管型代码,创建...
    99+
    2023-06-30
  • Python 调用c#的dll pyth
    1.首先有准备好的c#的dll可供调用。需要本文的dll的自行下载dll2.安装pythonnet 在python的安装路径 Python\Python36-32\Lib\site-packages\pip   下执行 pip insta...
    99+
    2023-01-31
    Python dll pyth
  • C#怎么生成带注释的dll并引用
    本篇内容主要讲解“C#怎么生成带注释的dll并引用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#怎么生成带注释的dll并引用”吧!一. 编写.cs文件注:要想编译dll中注释可用,则代码中的...
    99+
    2023-06-29
  • golang调用c实现的dll接口细节分享
    目的 本篇文章主要介绍golang在调用c实现的dll时,具体的一些方式。比如值传递、参数传递、指针等等的一些使用。 一、dll的代码 c实现的dll代码: hello.h #i...
    99+
    2024-04-02
  • python怎么封装成可调用的库
    要将Python代码封装成可调用的库,可以按照以下步骤进行操作: 将需要封装的代码放入一个独立的Python模块文件中,例如myl...
    99+
    2023-10-23
    python
  • Unity调用C++ dll实现打开双目相机
    目录1.vs中生成dll2.unity中justatry脚本3.在unity中调试4.在vs中调试4.1 把unity的工程生成对应的exe4.2 在vs项目的属性中做如下设置4.3...
    99+
    2024-04-02
  • Java调用dll文件的实现解析
    目录Java调用dll文件环境接下来进入正文Java调用dll文件几种常见方式Java调用动态库需要关注的问题一.数据类型对应关系二.Jnative调用dll三.JNA调用dll&n...
    99+
    2024-04-02
  • Java调用第三方接口封装实现
    目录介绍一、借助feign实现调用二、自己封装请求类三、调用第三方生成token,可以使用策略类实现总结介绍 在Java项目中,会遇到很多调用第三方接口的地方,比如接入微信,其他公司...
    99+
    2023-02-16
    Java调用第三方接口封装 Java调用第三方接口
  • C#如何实现SQL封装
    这篇文章给大家分享的是有关C#如何实现SQL封装的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SQLHelper.as , 代码如下:using System; usi...
    99+
    2024-04-02
  • C/C++调用Fortran的DLL的操作过程
    目录【混合编程】C/C++调用Fortran的DLL一、Fortran操作1.1 Fortran代码1.2 Dll工程文件建立二、C / C++调用三、完整代码3.1 Fortran...
    99+
    2024-04-02
  • 如何用C#做中间语言实现Java调用.net DLL
    如何用C#做中间语言实现Java调用.net DLL,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。51CTO曾经为大家讲过“Java与.NET的WebServices相互调...
    99+
    2023-06-17
  • C#使用DLLImport调用外部DLL的方法
    C#.Net调用基本格式: DllImport 属性提供非托管 DLL 函数的调用信息。 [DLLImport(“DLL文件路径”)]修饰符 extern 返...
    99+
    2024-04-02
  • C++ map与set封装如何实现
    今天小编给大家分享一下C++ map与set封装如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、前情回顾...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作