UEFI开发基础HII代码实例分析


这篇文章主要介绍“UEFI开发基础HII代码实例分析”,在日常操作中,相信很多人在UEFI开发基础HII代码实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”UEFI开发基础HII代码实例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!BeniPkgDynamicCommandSetupDynamicCommandSetupDynamicCommand.inf。这里通过一个命令setup来打开图形界面。图形界面的form在Page.vfr中,还有若干的uni文件存放字符串,并通过如下的代码来初始化:这里使用了将资源放到二进制中的方式。然后通过如下的代码来显示图形:一开始使用的Page.vfr文件内容:只有一个formset,此时什么也不会显示出来,还需要在里面加内容,首先是一个form:此时得到的结果:标题来自STR_PAGE_TITLE_FORM,而Esc=ExitSendForm()自己生成的。之后就可以往form中添加内容。首先增加一个静态的字符串:得到的结果:可以看到SendForm()自己还生成了一个↑↓=Move Highlight。然后增加选择框(checkbox)并伴有变量,如下所示:对应的变量结构体:显示结果如下:这里可以修改值,并且保存,但是因为后端没有代码实现,所以会报错:因此还需要增加后端的代码,这主要包含几个部分:变量的初始化,EFI_HII_CONFIG_ACCESS_PROTOCOL的实现和安装。这里首先初始化vfr中对应的变量:这个本身意义不大,就是初始化和设置了一个变量而已,变量的值是1(所以显示的不再是Zero,而是One),这在界面中也会体现出来。然后就是安装EFI_HII_CONFIG_ACCESS_PROTOCOL:这里的DriverCallback()等函数可以根据实际情况来实现,目前只是增加了打印信息而已,在操作上述的选择框时会被调用并输出信息。string是一个可编辑的字符串,编辑之后可以保存到变量,下面是一个示例:DriverDescriptionData是变量BeniSetupData的成员,它也可以预先初始化(本例中初始化成“Hello World”),PAGE_DESCRIPTION_ID可以在EFI_HII_CONFIG_ACCESS_PROTOCOLCallback()中定位,此外还有一些帮助信息、大小和操作限制等等配置。下面是显示结果:没什么好说的,就是数字:下面是显示的结果:跟string类似,只不过只能输入数字,通过flag的配置,可以选择使用十进制还是十六进制。跟subtitle不同的是,text可以被选中,下面是一个例子:PAGE_TEXT_IDEFI_HII_CONFIG_ACCESS_PROTOCOLCallback()中使用:显示如下:可以看到text那一行可以被选中,点击之后可以看到打印信息:之所以能够操作这一行,原始主要在于flags = INTERACTIVE,,这样就会创建一个EFI_IFR_ACTION的操作码,相当于植入了一个可操作的动作。勾选框,只有TRUE和FALSE,或者0和1两个值。下面是一个示例:这里还使用了grayoutif,选中之后之前测试用的text会变灰,如下所示:用于跳转到另外的界面:显示的结果:label相当于一个VFR中的一个占位符,本身不会产生可显示的内容,而是需要通过代码动态的增加显示内容,具体如何增加,就是使用之前介绍的HiiCreateXXX()函数在增加f免费云主机域名orm组件。下面是label的示例:可以看到这里只是增加了两个label而已,真正的操作还是在代码中:得到的结果如下,红色部分就是通过代码生成的:到此,关于“UEFI开发基础HII代码实例分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注百云主机网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: css后代选择器怎么使用

本篇内容主要讲解“css后代选择器怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css后代选择器怎么使用”吧!说明1、后代选择器又称为包含选择器,可以选择作为某元素后代的元素。2、从h2开始里面包含的所有的…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/11 09:43
下一篇 03/11 09:43

相关推荐