首页 > 其他 > 详细

Ue4_手动添加模块/插件/封装DLL

时间:2021-05-23 23:15:34      阅读:26      评论:0      收藏:0      [点我收藏+]

一.Ue4手动创建模块

技术分享图片

 

 1.创建如图项目为Module_Test

 

 技术分享图片

 

 2.创建一个名为Blank的插件空白模板,接下来准备手动添加插件和模板

技术分享图片

 

 3.当创建Blank 插件模板后,编辑器会产生如下结构 

Plugins

  Blank

    public

      Blank.h

    private

      Blank.cpp

    Blank.Build.cs

    Blank.uplugin

4.找到对应的plugins的source文件下,复制Blank文件夹

技术分享图片

 

修改名为Cus_Mod

 技术分享图片技术分享图片 技术分享图片

 

5.点击Cus_Mod.Build.cs修改内容为 Blank 改为Cus_Mod 当前模块名

技术分享图片技术分享图片

 

6.回到项目的uproject文件,点击Generate

技术分享图片

回到vs,我们重载当前的项目文件

技术分享图片技术分享图片

 

 7.进行下列修改 Cus.Mod.h /Cus.Mod.cpp/Blank.uproject 

技术分享图片技术分享图片

 

 技术分享图片

 

8.手动添加模块完成,点击编译,会产生如下dll文件

技术分享图片

 

9.为加快启动速度,防止重复编译模块,可以使用如下build.cs 模块使用 bUsePrecompiled = true,直接加载编译后的Dll文件

 二.关于隐藏插件.cpp文件

当前插件如不像暴露.cpp文件的具体实现内容,只想暴露.h文件,如何实现?

 1.在Plugins下source文件添加DLL.h / DLL.cpp

 技术分享图片技术分享图片

 

 回到uproject 后Generate后进行如下改写

创建一个Pawn

//DLL.h
#include "CoreMinimal.h"
#include "GameFramework//Pawn.h"
#include "DLL.generated.h"

/**
 *
 */
UCLASS(Blueprintable, BlueprintType)
class CUS_MOD_API ADLL : public APawn
{
    GENERATED_BODY()
public:
    UFUNCTION(BlueprintCallable, Category = "DLL")
    void Logs();
};

//DLL.cpp

#include "DLL.h"

void ADLL::Logs()
{
    GEngine->AddOnScreenDebugMessage(-1, 200.0f, FColor::Blue, TEXT("Hello DLL"));
}

 

技术分享图片

 

 技术分享图片

 

 重新编译后,content下会出现

技术分享图片

 

 打开关卡蓝图,测试调用Logs

技术分享图片技术分享图片

 

2.当删除private 文件后,

 技术分享图片

3.在build.cs添加如下ePrecompiled = true ,不编译当前模块,直接加载编译过的dll文件

技术分享图片

 

如图,仍可以进行调用

技术分享图片

 

 5.当项目需求需要隐藏具体函数内部的cpp文件时,编译后可将其cpp文件删除,并将build.cs的文件设置为 bUsePrecompiled = true,即可跳过编译,直接加载dll,从而缺少cpp文件仍可进行加载

 

Ue4_手动添加模块/插件/封装DLL

原文:https://www.cnblogs.com/zsymdbk/p/14801677.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!