找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 28786|回复: 6

EFI 编程交流

[复制链接]
发表于 2008-6-24 16:30:52 | 显示全部楼层 |阅读模式
小弟最近在学UEFI, 用EDK尝试着写点东西。4 h' ]( g$ r1 }) |9 O8 ]4 u, v
   希望大家一起交流交流。, D) Z8 p% q& H  x
   这是最简单一个程序,在屏幕上显示:  "Hello World"
$ z/ _/ E2 C8 Y5 K$ k; |+ n5 P   这是直接使用gST-Conout功能实现。( J. @7 m. h% _8 [& {* A
   但使用PrintXY( 3, 4, NULL, NULL, L"Hello World");却无法实现。( I0 v/ y6 T2 E& }1 o3 r/ v
7 Y& {) Q5 O% X$ {+ a2 W
   PrintXY(3, 4, NULL, NULL, L"JANY lu");    //debug发现执行后的返回值为 0
; l$ r) D+ w4 Z& W% a   Out->OutputString (Out, L"Hello World");  //实现输出
- c% Q* Q) i# I( }. K, S: T/ V# K5 c* O! q% _  ]8 Z7 B4 a( f
   小弟不知道如何调用EFI封装好的这些输出输入库。6 `* \2 ~$ z* p4 G; _
   希望大侠指点一下。

Jany.rar

2.56 KB, 下载次数: 1525

EFI Hello World

发表于 2008-6-24 16:38:48 | 显示全部楼层
PrintXY是EfiPrintLib里的东西,看看你的程序的inf文件,有没有把EfiPrintLib加进来。
回复

使用道具 举报

 楼主| 发表于 2008-6-26 21:37:39 | 显示全部楼层
问题解决了。
7 x  j, k) R% \7 x/ S$ {4 p$ I# H加入这个PrintLibLite库后还是不行。
2 B% z! i. H% u3 e/ m9 w, x编译执行不会有错,但他就是不显示。
( u1 V: I6 K6 W现在我将print.c, print.h放到同一个目前,
/ k% c8 B: F0 \直接写到make.inf中。就可以显示了。% u) W6 c5 T, S+ S# p5 g9 D& {) S
当然,print.h要改变一下,不然找不到函数的申明。
+ P9 W8 w- J" f" ?8 f' L( a% b# e, ]" S1 e9 h
明天了如何输入,但不明白为什么用printliblite不能得到输入功能。) S% K, g* n8 s7 D
如果是生成PrintLibLite的inf文件部分。
) \3 \0 {5 K. D+ w2 n) d" ?用不成功,只能自己改变。---这个想法是在下班路骑自行车时想到的。3 M# A9 w- `4 m" j( m
[defines]
# E+ O0 K* `/ v. I. H) O0 |BASE_NAME           = PrintLibLite
' |- T, \9 b& p) f/ O  mCOMPONENT_TYPE      = LIBRARY2 g- W8 q- @9 m2 P# f; {8 [2 t5 }& m
, X/ b# x8 X1 t1 k$ X' `
[sources.common]. s  Y. u9 V- s) u2 ~" R! o; {
  BoxDraw.c
+ J$ v3 G  r5 c/ g4 m9 z2 ^  Print.c% {0 P$ l/ q$ a1 Q4 `0 G; ?6 f4 k
  Print.h7 {: A  \+ q% U5 |( c
  StdErr.c
7 H$ m2 K* f; Q! y' @  Unicode\PrintWidth.h4 W' x) r! T& m6 P: n. s' d  z0 y
  Unicode\SPrint.c

Owen.rar

9.35 KB, 下载次数: 1525

EFI Print

回复

使用道具 举报

发表于 2008-6-27 11:19:46 | 显示全部楼层
lz. x& z. U7 N' _& T
你的printXY函数是不是用Grouph 这个protocol去直接画屏幕?
回复

使用道具 举报

 楼主| 发表于 2008-6-29 15:26:36 | 显示全部楼层
printxy不是在grouph中的,我加载过,没有效果.看source code,这具函数是在PrintLibLite中,) {, m7 D7 i/ F) f
可能是其他原因,显示了但没有被看到,显示到其他的page中了。' }5 A7 `$ b' i1 B+ Z6 ~. I
重写一个print的东西,就可以输出。
) j% @0 k3 c) B0 T0 A% V* s( P" g8 D8 J  W5 b1 ]; p; }, p! U. @0 `
print()是在grouph,可以正常使用。
回复

使用道具 举报

发表于 2012-4-25 16:51:59 | 显示全部楼层

回复 2# bini 的帖子

高手,请教你一个很简单的问题,用EDK编译hello world的时候报的错误,找了很久没找出原因,希望你不吝赐教! 错误如下:( h5 ^- x- I7 {8 \
build..." q- _% A* M5 Z  j+ A% d
:error 7000:Failed to start command: U8 t: p) A# s1 b4 ]: }
                C:\Program Files\VS 9.0\VS\bin\nmake.exe /nologo tbuild [我的路径中的PeiMemoryAllocationLib]
6 R6 l) Y! o, g% u4 G9 C
7 T5 S1 V1 [! H4 \7 O4 f5 ~% nbuild...
+ r9 G4 V/ v3 ?. y) x& z; L  : error F0002:Failed to build module2 y$ M" C0 r3 m. j( h4 s5 M$ {: @
         我的路径\PeimemoryAllocationLib.inf[IA32,VS2008x86,debug]
8 H8 ^! m6 y- f! E/ a
$ J2 @% `) F1 b9 y, h$ J请指教啊
回复

使用道具 举报

发表于 2012-4-28 07:56:32 | 显示全部楼层

回复 2# bini 的帖子

南狼,你好,请教你一个问题,我用Print打印东西,但是提示报错,并且我已经将efilib这个库包含了,错误如下
6 {4 w% }) c3 l0 n9 u  glibefi.lib(print.obj) : error LNK2019: unresolved external symbol ___security_co7 W) T7 m; A" v! T& m* x
okie referenced in function __Print
! \% ?9 w" @4 Elibefi.lib(print.obj) : error LNK2019: unresolved external symbol @__security_ch3 _# [3 t" a7 y' c- n
eck_cookie@4 referenced in function __Print
8 l) {4 H% _5 Z- o+ W. I* _D:\UEFI_software\original\Build\NT32\DEBUG_VS2008\IA32\ShowTime.dll : fatal erro
! S' m" v0 F' p' y0 Pr LNK1120: 2 unresolved externals2 `/ M  O/ b6 q
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN7 W, T& O3 B, ^* U# I' g
\link.EXE"' : return code '0x460'7 s" |2 W% {/ l  `
Stop.8 t$ e& R( l" O# S; T
) U4 e1 i# i, p$ n9 f
请指教啊!!!!!!!!!!!!!多谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2026-9-21 21:04 , Processed in 0.371288 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表