【发布时间】:2010-10-28 22:07:08
【问题描述】:
我使用 Matlab 编译器创建了一个 .exe 文件。该程序需要 15 秒才能启动。我想隐藏控制台窗口,并显示自定义启动画面。我该怎么做?
【问题讨论】:
标签: c++ c windows matlab splash-screen
我使用 Matlab 编译器创建了一个 .exe 文件。该程序需要 15 秒才能启动。我想隐藏控制台窗口,并显示自定义启动画面。我该怎么做?
【问题讨论】:
标签: c++ c windows matlab splash-screen
关于制作启动画面,The MathWorks File Exchange 上的一些提交内容就是这样处理的:
我个人没有使用过它们,但如果你想设计自己的启动画面功能,它们至少应该给你一些指导。
【讨论】:
你可以编写一个“启动器”程序。
启动器会
棘手的一点是确定 matlab 程序何时启动。一种方法可能是在循环中调用 EnumWindows() 和 GetWindowText(),查找 matlab 窗口标题,但如果您了解 matlab 程序的功能,您可能会想出更好的方法。
您可能需要继续检查 matlab 进程是否没有终止,以防出现问题。
【讨论】:
要摆脱 DOS 窗口,请使用 mcc -e 而不是 mcc -m。请参阅doc() 提出的在线文档中的“MATLAB Compiler > Function Reference”。不过,您可能不想这样做:DOS 窗口是最后的输出;这是未处理的异常、核心转储和其他诊断输出的所在。至少让它成为一个选项,这样你就可以有一个带有 DOS 窗口的调试版本。
根据我的经验,编译的独立 Matlab 程序的启动开销发生在将控制权转移到用户 M 代码之前,因此需要在外部程序中完成启动画面,或者连接到 @987654324 的 C 包装器@ 生成。您可以使用 Michael J 关于编写启动器的建议。不过,您不是在寻找 matlab.exe 或 Matlab 桌面窗口,因为这是一个独立的应用程序。要检测 Matlab 程序何时启动,请让您的 M 代码写出一个小临时文件作为程序执行的第一件事,并让您的启动器注意这一点。
【讨论】: