unreal 默认是 无法嵌入到程序中作为一个dll模块的。想嵌入,需要做一些修改调整。再上一篇文章说过这个主要修改步骤。
这里说第一方面:
unreal 导出 dll工程:
1、通过ue editor 建立一个 ue工程。(UeSdk)
2、调用vs 打开项目, 修改编译选项。 文件 :
public uesdkTarget(TargetInfo Target) : base(Target)
{
Type = ;
( new string[] { "uesdk" } );
bShouldCompileAsDLL = true;
bUseStaticCRT = false;
}
这样可以编译目标为 dll。但是ue 这里是有问题的。这里虽然生成的目标是dll, 但是 实际是exe文件,只是名称变了。
这里需要修改 unreal 的编译工具: UnrealBuildTool
3、修改 UnrealBuildTool工程内容。这里不得不修改源码了。unreal 从软件工程上说,有不少问题。
1157:
// = !();
= ;
3893:
//zsyddl dll
UEBuildBinaryType binaryType = ? : ;
//UEBuildBinaryType binaryType = !ShouldCompileMonolithic() ? : ;
这样可以编译为真正的dll
4、如此修改虽然可以编译为 dll 也可以被调用。但是都是一个独立的 dll,很大的哦。50M+ ;
以上只是能编译为 dll,并链接了 Unreal主要的库。 想要从程序调用dll,还需要一些修改。
比如启动 unreal 、 启动 unreal 循环、嵌入到我们的程序窗口重、支持多实例。 后面会将修改好的代码方一份到网盘。整个项目很大。只能将源代码打包放上去。