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

EFI 编程交流

[复制链接]
发表于 2008-6-24 16:30:52 | 显示全部楼层 |阅读模式
小弟最近在学UEFI, 用EDK尝试着写点东西。; E! Z8 R7 k/ A+ d9 o  N# c2 I
   希望大家一起交流交流。
  y  h, l* c' {& \" |" c+ {0 h; P   这是最简单一个程序,在屏幕上显示:  "Hello World"# K: _7 T' S: q8 F  a1 ]; q
   这是直接使用gST-Conout功能实现。
3 k& }6 V! H" s8 S- `1 p   但使用PrintXY( 3, 4, NULL, NULL, L"Hello World");却无法实现。% R! u( {! i6 p9 ]0 I
7 n, x( ]* k8 d% D# C1 r4 g; Y
   PrintXY(3, 4, NULL, NULL, L"JANY lu");    //debug发现执行后的返回值为 0$ B0 t2 |! ~0 ~7 u
   Out->OutputString (Out, L"Hello World");  //实现输出' l7 w% {' d+ j  Q* A

6 s3 H0 p' T7 Q2 z+ k1 T% i3 M   小弟不知道如何调用EFI封装好的这些输出输入库。9 _+ \8 f- Q8 `% F; t) E& k9 ]
   希望大侠指点一下。

Jany.rar

2.56 KB, 下载次数: 1501

EFI Hello World

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

使用道具 举报

 楼主| 发表于 2008-6-26 21:37:39 | 显示全部楼层
问题解决了。
/ E' T- W$ x* f  H; k9 z& [! a加入这个PrintLibLite库后还是不行。
# F6 x3 D4 L/ N编译执行不会有错,但他就是不显示。
$ q' K- s% N( p2 u- ?) k$ ~现在我将print.c, print.h放到同一个目前,+ A. N. h+ R8 ]. m4 E6 N  v
直接写到make.inf中。就可以显示了。
0 ?* I0 H, I$ Y* ]2 i: Y/ r8 p+ a0 p  T4 g当然,print.h要改变一下,不然找不到函数的申明。
$ X9 i3 X% v$ Q& q" n7 P( {3 }: a/ q( L
明天了如何输入,但不明白为什么用printliblite不能得到输入功能。
2 U' c/ a5 y. u1 U2 J& E/ a如果是生成PrintLibLite的inf文件部分。8 ?0 ^+ |$ R* C& l# x0 ?: v
用不成功,只能自己改变。---这个想法是在下班路骑自行车时想到的。- r  ^/ q1 a6 a3 F# W; E. w$ m* L
[defines]
) [/ \+ }4 B$ h  M8 ~& O) q' ?BASE_NAME           = PrintLibLite
( L% y) Q$ j1 _1 A3 g+ a, r9 ~COMPONENT_TYPE      = LIBRARY
5 Z1 ?9 p* _3 [& ~
8 [& ]9 {- Y' Z# O[sources.common]
: R+ l2 H, z6 v  _! C  BoxDraw.c$ b) M- u% T' I/ M- o3 g) s
  Print.c* p. X- r9 S# d2 Z- r
  Print.h
0 G0 z4 v& r2 l; j2 y  StdErr.c# u1 k  P! u/ R
  Unicode\PrintWidth.h0 W0 n& s- P8 S: I0 O
  Unicode\SPrint.c

Owen.rar

9.35 KB, 下载次数: 1480

EFI Print

回复

使用道具 举报

发表于 2008-6-27 11:19:46 | 显示全部楼层
lz
7 @2 K0 J6 l) s3 n! n7 C; c你的printXY函数是不是用Grouph 这个protocol去直接画屏幕?
回复

使用道具 举报

 楼主| 发表于 2008-6-29 15:26:36 | 显示全部楼层
printxy不是在grouph中的,我加载过,没有效果.看source code,这具函数是在PrintLibLite中,! G+ N; d' Q( q' K
可能是其他原因,显示了但没有被看到,显示到其他的page中了。& U" |/ z# C- L$ H
重写一个print的东西,就可以输出。
4 B# _6 e* t2 ?3 J# i! i* l
) {# j6 l8 w" V: Dprint()是在grouph,可以正常使用。
回复

使用道具 举报

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

回复 2# bini 的帖子

高手,请教你一个很简单的问题,用EDK编译hello world的时候报的错误,找了很久没找出原因,希望你不吝赐教! 错误如下:
- h1 @9 r; e2 A2 b* }* K: |2 Ibuild...
3 |3 `$ H& z  M' l" B  l :error 7000:Failed to start command: X! d  y0 r; u8 n
                C:\Program Files\VS 9.0\VS\bin\nmake.exe /nologo tbuild [我的路径中的PeiMemoryAllocationLib]2 a/ H3 f! S7 L( D" j7 L0 d' R2 ?
" O: G7 @: b# t) X+ W
build...$ M5 ?( U% I! L9 y
  : error F0002:Failed to build module; E2 C5 \$ T3 I4 t/ J7 ~/ W
         我的路径\PeimemoryAllocationLib.inf[IA32,VS2008x86,debug]
3 l6 d0 x: D6 T  l* C
5 L: U9 O9 V+ D9 f- R请指教啊
回复

使用道具 举报

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

回复 2# bini 的帖子

南狼,你好,请教你一个问题,我用Print打印东西,但是提示报错,并且我已经将efilib这个库包含了,错误如下" w! ~. E4 I( K+ u/ D
libefi.lib(print.obj) : error LNK2019: unresolved external symbol ___security_co
. j& |+ e4 k  p1 L: t5 Gokie referenced in function __Print
! f1 u. N8 v, q, u! rlibefi.lib(print.obj) : error LNK2019: unresolved external symbol @__security_ch
$ e3 U/ G  a$ U& {- U! {eck_cookie@4 referenced in function __Print8 i& W7 U" e2 A- e) w1 S
D:\UEFI_software\original\Build\NT32\DEBUG_VS2008\IA32\ShowTime.dll : fatal erro
. @; X/ F& [' H. ?r LNK1120: 2 unresolved externals  I9 s4 U: P, w# b# o. C' J
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
* b  k! \. S: Y6 Y/ j" N\link.EXE"' : return code '0x460'  F) v& K" K+ W; n& x, i, M$ j
Stop.( ~) v: l3 h7 j6 I) m/ A9 Z) u
) X* w; }% R1 Q/ o  T% t
请指教啊!!!!!!!!!!!!!多谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-1 16:56 , Processed in 5.573399 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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