UE4使用第三方库


昨日不可追, 今日尤可为.勤奋,炽诚,不忘初心


一.如果你想要自己用C++编译第三方库,动态库,那么先看这篇文章,否则跳过

      C++编译动态库第三方库及使用:点此连接

      或点这里:https://blog.csdn.net/lunweiwangxi3/article/details/87184775

二.已有第三方库,想做成UE4插件,那么看下面连接

     UE4中使用第三方库Ⅱ : 点此连接

    或者点这里:https://blog.csdn.net/lunweiwangxi3/article/details/83187840

 

三.小时候的故事

1.我对动态库是逃避的,当初弄成库,是因为在逃避另一个无法逃避的问题,没错,DWORD类型冲突了,一个是C++ std标准库定义,另一个是UE4的定义,两个大佬一个都不好惹。当时的做法是做成一个动态库,因为,动态库,能绕过重定义这个问题。事实证明,确实可行,库的一大优势!

类型冲突时候的解决方法:UE4中,屏蔽系统库,最后再解除屏蔽,具体做法如下:

//ue4的头文件
#include "AllowWindowsPlatformTypes.h"
#include...   //冲突的第三方头文件
#include "HideWindowsPlatformTypes.h"

 

2.一定要注意库是Debug模式下的,还是Release模式下的,分别对应32位操作系统还是64位操作系统。第三方库一定要和虚幻4的模式对应。

 

3.UE4中虽然也可以像纯C++项目那样添加 项目->属性->配置属性,添加包含目录,库目录  #pragma comment(lib,"MyDLL.lib ") 这样添加库,并且编辑器中运行也OK的,但是打包就废了要在对应的Build.cs文件中添加头文件,库等。

 

4.逃避是最大的敌人,静下心来耐心分析每一行乱码,相信很快,就能成为考古学家了

 

### 如何在 Unreal Engine 5 中集成和使用第三方库 #### 集成第三方库的基础流程 为了在 Unreal Engine 5 (UE5) 中成功集成和使用第三方库,开发者可以遵循官方文档中的指导[^2]以及社区分享的经验[^3]。以下是具体的操作方式: 1. **准备阶段** 开发者需确保目标第三方库已编译为兼容的静态或动态链接库文件 (.lib 或 .dll),并附带头文件 (.h 文件)。 2. **配置模块设置** 在 UE5 的项目结构中,创建一个新的 C++ 模块用于管理该第三方库。编辑 `Build.cs` 文件以指定所需的依赖项和路径: ```csharp PublicIncludePaths.Add("Path/To/Library/Header"); PublicAdditionalLibraries.Add("Path/To/Library/Lib/library.lib"); ``` 3. **加载动态链接库(DLL)** 如果使用的库是以 DLL 形式提供,则需要实现动态加载逻辑。例如,在运行时调用函数解析地址: ```cpp void* Handle = FPlatformProcess::GetDllHandle(TEXT("library.dll")); typedef int (*MyFunction)(); MyFunction FunctionPointer = (MyFunction)FPlatformProcess::GetSymbolAddress(Handle, TEXT("FunctionName")); if(FunctionPointer != nullptr){ FunctionPointer(); } FPlatformProcess::FreeDllHandle(Handle); ``` 4. **验证与测试** 完成上述步骤后,建议构建一个小规模的功能演示场景来确认集成效果是否正常工作。 #### 实际案例分析——淘宝购买插件接入实例 对于从外部渠道获取如淘宝上的现成插件产品来说,通常有两种主流方法将其引入现有工程之中: - 方法一是直接复制整个插件目录至项目的 Plugins 子文件夹下; - 另一种则是利用 Marketplace 插入机制完成安装部署过程。 无论采用哪种途径都务必仔细阅读随附说明文档以便正确调整参数设定从而发挥其最大效能价值。 ```cpp // 示例代码片段展示如何初始化某个假定名为 ExampleLibrary 的第三方组件 #include "ExampleLibrary.h" class UThirdPartyComponent : public UObject { GENERATED_BODY() public: bool Initialize() const{ return ::InitializeExampleLibrary(); // 假设这是由库暴露出来的入口点之一 } private: }; ```
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值