当前位置:网站首页>When opening the system window under UE4 shipping, the problem of crash is attached with the plug-in download address
When opening the system window under UE4 shipping, the problem of crash is attached with the plug-in download address
2022-07-07 15:42:00 【WhiteTian】
Original article , Reprint please indicate the source .
Shipping Next, open the system window and crash
Plug in download link
SelectDialog Plug in download link
Preface
If you encounter normal development (Debug/Develope) It's no problem to call the interface to open the system window , and Shipping If you break down directly , Let's see if it's the same problem .
Description of collapse phenomenon : call FDesktopPlatformModule::Get()->OpenFileDialog To open the interface under different systems , For example, you need to import the model at run time , Import pictures, videos, audio and other functions , You will use this function .
Here's the picture , I want to choose a computer in the program fbx Import the format model . stay dubug Under the normal , The bag that came out collapsed .
How to solve ? What's the reason ?
The code you call should be similar to the following (FDesktopPlatformModuleEx It's one of my packages shipping Plug in for next use .FDesktopPlatformModuleEx::Get())
/* Open the system folder path Parameters 1: File absolute path Parameters 2: file type TEXT("*.*")= All Record : TEXT("FBX,JPG,BMP,PNG files|*.fbx;*.jpg;*.png;*.bmp"); TEXT("FBX Files|*.fbx"); TEXT("JPG,BMP,PNG files|*.jpg;*.png;*.bmp"); TEXT("(Image Files)|*.BMP;*.JPG;*.PNG;*.JPEG;)") */
UFUNCTION(BlueprintCallable, Category = "OpenWindowsFile")
static TArray<FString> OpenWindowsFiles(const FString& sTitle, const FString& sYourFullPath, const FString& sExtensionStr = TEXT("*.*"));
TArray<FString> URegionRiskReadLibrary::OpenWindowsFiles(const FString& sTitle, const FString& sYourFullPath, const FString& sExtensionStr)
{
// List of files selected by the user
TArray<FString> OpenFileNames;
IDesktopPlatform* DesktopPlatform = FDesktopPlatformModuleEx::Get();
if (DesktopPlatform)
{
void* ParentWindowHandle = GEngine->GameViewport->GetWindow()->GetNativeWindow()->GetOSWindowHandle();
DesktopPlatform->OpenFileDialog(ParentWindowHandle, sTitle, sYourFullPath, TEXT(""), *sExtensionStr, EFileDialogFlags::Multiple, OpenFileNames);
}
return OpenFileNames;
}
The reason for the breakdown
Actually, we are shipping The following cannot be quoted Engine in Developer Contents of any module in the folder , This can only be Debug and Develope Next use .
PS:Engine in Developer It refers to the following figure Developer All modules in the folder .
All modules in this folder cannot be in shipping Under the use of , If used , Phenomenon is shipping Downfall , The corresponding supporting documents are not in the bag at all .
You should know what happened here , In fact, it is because you call to open the system window API It belongs to DesktopPlatform modular , Happen to happen DesktopPlatform This module is again Developer Within the scope of .
Solution
Actually, it's simple , That's the top Developer In the folder DesktopPlatform Module and what it uses Related modules ( stay Developer Range ) Copy out , Modify the class name and module name .
See here , I believe you will know how to solve similar problems if you encounter them again .
So I made a plug-in , Tested for 4.25 Each version and 4.26 Each version . Other versions have not been tested .
How does the plug-in work
1> Unzip it and put it into your project Plugins In the folder ;
2> In your build.cs There will be DesktopPlatform Module reference , Replace with DesktopPlatformEx Just name the module ;
3> Get rid of DesktopPlatform The header file contains ;
4> Remember when calling FDesktopPlatformModuleEx::Get(); Put... In your code FDesktopPlatformModule Replace with FDesktopPlatformModuleEx;
/* Open the system folder path Parameters 1: File absolute path Parameters 2: file type TEXT("*.*")= All Record : TEXT("FBX,JPG,BMP,PNG files|*.fbx;*.jpg;*.png;*.bmp"); TEXT("FBX Files|*.fbx"); TEXT("JPG,BMP,PNG files|*.jpg;*.png;*.bmp"); TEXT("(Image Files)|*.BMP;*.JPG;*.PNG;*.JPEG;)") */
UFUNCTION(BlueprintCallable, Category = "OpenWindowsFile")
static TArray<FString> OpenWindowsFiles(const FString& sTitle, const FString& sYourFullPath, const FString& sExtensionStr = TEXT("*.*"));
TArray<FString> URegionRiskReadLibrary::OpenWindowsFiles(const FString& sTitle, const FString& sYourFullPath, const FString& sExtensionStr)
{
// List of files selected by the user
TArray<FString> OpenFileNames;
IDesktopPlatform* DesktopPlatform = FDesktopPlatformModuleEx::Get();
if (DesktopPlatform)
{
void* ParentWindowHandle = GEngine->GameViewport->GetWindow()->GetNativeWindow()->GetOSWindowHandle();
DesktopPlatform->OpenFileDialog(ParentWindowHandle, sTitle, sYourFullPath, TEXT(""), *sExtensionStr, EFileDialogFlags::Multiple, OpenFileNames);
}
return OpenFileNames;
}
thank you , It's not easy to create , Great Xia, please stay … Move your lovely hands , To a Focus on Go bai
ღ( ´・ᴗ・` ) finger heart <( ̄︶ ̄)>
边栏推荐
- Using eating in cocos Creator
- [机缘参悟-40]:方向、规则、选择、努力、公平、认知、能力、行动,读3GPP 6G白皮书的五层感悟
- Share the technical details of super signature system construction
- Super simple and fully automated generation super signature system (cloud Xiaoduo minclouds.com cloud service instance), free application in-house test app distribution and hosting platform, maintenan
- How to deploy the super signature distribution platform system?
- Getting started with webgl (1)
- Pat grade a 1103 integer factorizatio
- The significance of XOR in embedded C language
- 【原创】一切不谈考核的管理都是扯淡!
- [deep learning] semantic segmentation experiment: UNET network /msrc2 dataset
猜你喜欢
[server data recovery] data recovery case of raid failure of a Dell server
With 8 modules and 40 thinking models, you can break the shackles of thinking and meet the thinking needs of different stages and scenes of your work. Collect it quickly and learn it slowly
Actually changed from 408 to self proposition! 211 North China Electric Power University (Beijing)
全日制研究生和非全日制研究生的区别!
写一篇万字长文《CAS自旋锁》送杰伦的新专辑登顶热榜
Unity's ASE achieves full screen sand blowing effect
2022 all open source enterprise card issuing network repair short website and other bugs_ 2022 enterprise level multi merchant card issuing platform source code
有钱人买房就是不一样
Implementation of crawling web pages and saving them to MySQL using the scrapy framework
Briefly describe the working principle of kept
随机推荐
Do you know the relationship between the most important indicators of two strong wind control and the quality of the customer base
The rebound problem of using Scrollview in cocos Creator
Implementation of crawling web pages and saving them to MySQL using the scrapy framework
MongoD管理数据库的方法介绍
#HPDC智能基座人才发展峰会随笔
【數據挖掘】視覺模式挖掘:Hog特征+餘弦相似度/k-means聚類
[deep learning] image hyperspectral experiment: srcnn/fsrcnn
Write sequence frame animation with shader
How to build your own super signature system (yunxiaoduo)?
What is Base64?
【Markdown语法高级】让你的博客更精彩(四:设置字体样式以及颜色对照表)
What is data leakage
Getting started with webgl (1)
webgl_ Graphic transformation (rotation, translation, zoom)
[quick start for Digital IC Validation] 26. Ahb - sramc (6) for system verilog project practice (Basic Points of APB Protocol)
【深度学习】图像超分实验:SRCNN/FSRCNN
【数字IC验证快速入门】20、SystemVerilog学习之基本语法7(覆盖率驱动...内含实践练习)
webgl_ Enter the three-dimensional world (1)
2022 all open source enterprise card issuing network repair short website and other bugs_ 2022 enterprise level multi merchant card issuing platform source code
【数字IC验证快速入门】25、SystemVerilog项目实践之AHB-SRAMC(5)(AHB 重点回顾,要点提炼)