我正在尝试编写一个程序,这将是一个BIOS选项(POST后)。我希望应用程序有一个漂亮的GUI而不是基于文本(有多种原因,本地化就是其中之一)。
我的问题是我们受到应用程序大小的限制,我们可以刷新到BIOS。
是否可以使用MASM32“链接”到硬盘上的dll,以便我们可以使用Windows API来开发GUI?
或者是否有一个API可供我们创建可以链接到最终可执行文件的GUI? (最终程序可执行文件的大小约束为60K)
如果提前感谢,我们将非常感谢您提供的任何帮助。
答案 0 :(得分:9)
有可能。你所要做的就是:
这有很多,这并不容易。然而,一个接近的例子是MenuetOS,这是一个令人印象深刻的紧凑环境。但它完全源于对如何实现GUI环境的全面反思。
我编写了模拟GUI界面的BIOS代码。视频卡保持文本模式,字体看起来更漂亮,文本单元分隔符关闭,鼠标被识别。通过简单的动画,整个事情确实适合60 KiB左右。
答案 1 :(得分:5)
不,这是不可能的。 Windows应用程序需要Windows操作系统在其上运行,因此BIOS必须已启动操作系统并在使用Windows GUI(或控制台应用程序)之前完成运行。即使要访问磁盘上的DLL文件,您也需要一个文件系统,在操作系统启动之前,该文件系统将无法使用。
但是,在60K中,您应该能够使用相当合理的基于字符的GUI。我会看看一些linux bootloader是如何做到的。
答案 2 :(得分:0)
没有支持此功能的BIOS实现。但从理论上说这是可能的,但请记住,首先应该开发整个操作系统:)
答案 3 :(得分:0)
您可能有兴趣查看XOSL的源代码 - old boot manager,它有一个很好的窗口GUI。
答案 4 :(得分:0)
我不确定请求是否真的可行。 (牢记问题的背景)
为此,您必须初始化整个Microsoft Windows环境才能使用API函数绘制GUI。
出于好奇,你在这个BIOS程序中做了什么?