我使用 Matlab 编译器创建了一个 .exe 文件。该程序需要 15 秒才能启动。我想隐藏控制台窗口,并显示自定义启动画面。我怎样才能做到这一点?
3 回答
关于制作启动画面,The MathWorks File Exchange上有一些提交的内容就是这样处理的:
- 来自 W Thielicke的已编译 .exe GUI 的精美闪屏
- splash.m来自群涵。
- Roy Schestowitz 的启动画面。
我个人没有使用过它们中的任何一个,但如果您想设计自己的闪屏功能,它们至少应该给您一些指导。
您可以编写一个“启动器”程序。
发射器将
- 创建启动画面
- 使用 CreateProcess() 或其他方法启动 matlab exe。
- 等到matlab exe正确打开
- 出口
棘手的一点是确定 matlab 程序何时启动。一种方法可能是在循环中调用 EnumWindows() 和 GetWindowText() 以查找 matlab 窗口标题,但如果您了解 matlab 程序的功能,您可能会想出更好的方法。
您可能需要继续检查 matlab 进程是否已终止,以防出现问题。
要摆脱 DOS 窗口,请mcc -e
使用mcc -m
. 请参阅在线文档中的“MATLAB 编译器 > 函数参考”,由doc()
. 不过,您可能不想这样做:DOS 窗口是最后的输出;这是未处理的异常、核心转储和其他诊断输出的所在。至少让它成为一个选项,这样您就可以拥有一个具有 DOS 窗口的调试版本。
根据我的经验,编译的独立 Matlab 程序的启动开销发生在控制转移到用户 M 代码之前,因此需要在外部程序中完成启动画面,或者连接到mcc
生成的 C 包装器。您可以使用 Michael J 关于编写启动器的建议。不过,您不是在寻找matlab.exe
Matlab 桌面窗口,因为这是一个独立的应用程序。要检测 Matlab 程序何时启动,请让您的 M 代码写出一个小临时文件作为程序执行的第一件事,并让您的启动器注意这一点。