【详细全流程】UE4调用第三方库 动态链接库 dll C++


2022/2/27
UE4.24/4.26/4.27均测试成功
VS2019/2022均测试成功

0 引言

近期做的一个虚幻4项目,涉及到非常复杂的数学物理计算,需要调用一个现成的C++库以计算。解决问题途中,我遇到了一些坑,查阅了一些文章,最终尝试成功。在这篇文章中,我会
1.简要提及动态调用法和我的补充
2.使用UE4.24,从一个空白工程开始到打包,一步一步详细介绍静态调用方法。
水平有限,欢迎建议和指正

1 动态调用(仅使用.dll文件)

参考了这位大哥的博文https://blog.csdn.net/qq_36409711/article/details/82112867确实成功了
但是据评论所言这种方法在打包之后会有一点路径上的问题,因为我的项目适合静态调用,说以我没有最后去测试打包之后的问题

我对C/C++库的建立作一点补充:
动态调用dll,只需要一个dll文件,方法是通过函数名称 找到dll里的函数,进行调用。许多文章里说为了避免名称错乱,要使用Cextern "C",目的是使用c编译保证名称不错乱。
这里需要解释C/C++的不同,C库不支持重载,而C++支持重载(存在多个不同参数的同名函数),因此C++的dll里面,函数名称前后会多一堆符号和字母来区分重载函数。
所以,要看情况考虑。如果你的库里有重载函数,那么不能使用C编译,必须是C++,当然调用方法也很简单,只需要使用dll查看工具查看生成的dll中的实际函数名称,接着在通过函数名称找函数的时候,使用函数实际完整的名称(前后带一堆字母符号的函数名)即可

2 静态调用(需要.h.dll.lib文件)

2.1 创建dll库

打开VS2019
选择动态链接库模板创建

在这里插入图片描述

命名Dll3
在这里插入图片描述
初始界面。自动生成的文件都不用改

在这里插入图片描述
我们要64位库,默认x86所以改成x64
在这里插入图片描述
新建DLL3.cpp文件
在这里插入图片描述

新建DLL3.h文件
在这里插入图片描述
简单做一个自增的函数
DLL3.h中如下代码
在这里插入图片描述

#pragma once
#define DLL_API  _declspec(dllexport)
//#define DLL_API extern "C"_declspec(dllimport)
DLL_API float Add(
  • 13
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值