- 在线时间
- 8 小时
- 最后登录
- 2016-1-23
- 注册时间
- 2004-5-7
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 610 点
- 威望
- 0 点
- 阅读权限
- 30
- 积分
- 218
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 70
- 主题
- 26
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   59% TA的每日心情 | 怒 2014-2-22 20:49 |
|---|
签到天数: 13 天 [LV.3]偶尔看看II
 群组: 2014美赛MCMA题备战群 群组: 2014美赛MCMB题备战群 |
<FONT size=3> C/C++语言提供了十分丰富的图形函数,图形函数文件为Graphics.h,使用图形函数前须先将屏幕设置为图形模式,C/C++语言提供了下面的函数:
; {5 [/ g: l' W! F+ V' F% Z8 E void far initgraph(int far *GD,int far *GM,char *P);; L2 B! i! q# U; A9 @
j- M# u. ~! G0 W0 N. ]! ]9 `
其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
+ x6 H! Z: t* _9 M, I, |
" S: k( `8 \; P) t; V& i t0 T/ w3 R 图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
3 q" m- m( @, R. C7 r- `( b void far closegraph(void);, r$ u# X' U1 i
4 I1 J9 Z/ U- @ 许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
. W' x/ ^0 d9 N0 ^' m. Z- }
8 O' e* b- X# w! S 1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
, j+ p/ d- W, w! Z2 D C:\TC>BGIOBJ EGAVGA1 e5 P6 V1 b0 X5 q! d/ k1 }7 @) G
! c; Q- L* B; l8 g& d* i 按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:: w% t) Q8 X0 H a$ ^$ C
</FONT>' ?% a" E/ O, T$ y( v9 y9 i
2 K H. ?2 ]& |' D) H6 y: l% Y
1 r( z+ B; E( V% A+ A- O, D<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>5 w5 N+ z- O9 Z/ d
* B9 y: b% V+ \1 q0 F
<TR>$ ]5 |( H7 s; N; M1 J3 \
<TD> C:\TC>BGIOBJ TRIP
) U8 \6 Y) M8 T" V C:\TC>BGIOBJ LITT" [, ]8 n5 ^' k3 [0 u7 n
C:\TC>BGIOBJ SANS
1 F0 M3 N6 Q' R) h. n; X9 j$ c. [ C:\TC>BGIOBJ GOTH</TD></TR></TABLE>
, M2 ^1 ~3 Z' V* @6 U< > 2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:+ e! t. D5 |+ w
</P>. h1 z1 @1 i: B4 g0 _
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
5 A& w! i- t/ u; i" Q& D1 M3 q$ `' P4 }
<TR>7 M, e& b( c) |* L% k6 f
<TD> C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
( r; h, w+ b* \ C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP' I- }% t5 R+ c% n: L1 X
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
v" b! |1 Y; j9 }" a( O: T$ X6 r C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+SANS! N; {; L8 B1 {9 C' N2 v
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
# X, C$ _3 G- ]- Q# f< > 也可以使用TLIB、PRJ程序代替TLINK。" ~: b4 Y# |+ i2 k8 Q4 C1 Z
& D8 D6 a$ }' x. z/ D% m* X$ }) X
3.在程序中调用initgraph()函数前,应加上如下语句:9 t) V; y6 x2 H3 N0 @' \1 ^% _3 p' ]
registerbgidriver(EGAVGA-driver);
; J" E9 k4 m# h( F; F' v
. M% @- b& h6 R k; R7 M 它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
- A! C. T: [9 \0 ] registerbgifont(字体文件名);
5 ^3 G* H H1 Z
/ F& _% b- `3 Q C$ ]8 c+ G, u2 D 4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:& A( n: {! J. ]2 e. b6 |
</P> M8 \! a9 c F! A) }# q! V
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
/ K0 ]! b `. I5 u
% k9 S# W8 t( a# |* P7 q) L<TR>
# }% C, f `/ N<TD> void InitGra(void)
2 ^" q" }. b2 s q3 n {int GD=DETECT,GM;
1 W' ]. t) F s+ v registerbgidriver(EGAVGA_driver);
# C! d3 {0 \. b2 u' R registerbgifont(triplex_font);
& j. T ]6 w4 {! c4 C2 @, D registerbgifont(small_font);0 ]# Z1 B! S, C* \ O' Z8 P
registerbgifont(sansserif_font);
+ H$ }5 F( f% j3 a* c/ y. t registerbgifont(gothic_font);9 R! \9 H% |( g# x
initgraph(&GD,&GM,"");) E$ H$ d v) A
}</TD></TR></TABLE>$ F$ J9 k' h' Q7 s) b
< > 按照以上步骤,就能实现图形程序的独立运行</P> |
zan
|