- 在线时间
- 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++语言提供了下面的函数:
* X1 p8 i* L( J8 Y+ q3 |/ @ void far initgraph(int far *GD,int far *GM,char *P);
" V5 n4 J; h$ q V% T/ |) `/ _/ c' W2 X( U" u% L" T0 z+ d3 m
其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
; ^; g4 g0 |8 h9 n6 k; h" H5 Y+ Y$ }8 T+ I D1 K
图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:$ L+ k t6 \7 ^) h4 U" C
void far closegraph(void);
& C" S8 b" g( V3 n- \- f+ y& b+ D; \9 M8 @6 _* E% |
许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
! ]# C4 F* z7 m) f! O- q! Z5 m9 t& ~5 r0 {, X
1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
7 q& B5 i2 R: E0 Q! ^8 I5 I C:\TC>BGIOBJ EGAVGA1 U+ l: S- d! m5 y! \6 A5 N
3 o+ Y. ~6 h- @# A& z+ ~
按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:4 B+ X% O: H% }$ Y) w
</FONT>
- `# X- a$ I8 |% A6 c0 X2 y
b/ R4 [, ~: c' B5 q, ]! S8 e1 p
3 p$ r: p% J, o<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>8 U Y. u# C+ t7 D- H% E! Q" i
; T/ X9 n6 F( P6 p' w" ?/ D2 {<TR>! V7 M, s; E3 K& e6 m' M
<TD> C:\TC>BGIOBJ TRIP( b0 z& N; E' K5 p7 Q
C:\TC>BGIOBJ LITT
1 M. f/ `& M9 h" P/ y8 E C:\TC>BGIOBJ SANS
" N) k7 X& R" R; E C:\TC>BGIOBJ GOTH</TD></TR></TABLE>
. I `0 K( t7 X5 Q! o& s6 ~1 [< > 2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:2 C) o: ]* r0 m3 t5 @: [
</P>
- s! w, q0 y5 c; a/ q; S0 T<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
7 A$ Y- A' n0 C- N- R+ ^+ S+ g
. {" i. ]! D( `5 P9 Z6 h/ `+ b3 H<TR>
8 Z l3 B/ o5 l2 y& }<TD> C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
7 C% g* J& D T; [- ~/ }' a# ]! S C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
% e9 S* G- ^! x7 X C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
7 ?3 k1 K# C$ ~" P- ?3 x* L; A C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
& h: h8 T. Z4 k4 l$ W/ p6 J) ^ C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
; ]0 Y( E/ z! F; p% y: p< > 也可以使用TLIB、PRJ程序代替TLINK。% g1 {% u a/ c" G2 y1 k9 m/ f
+ s. h+ W' b- [3 y- J5 }) K( S% W
3.在程序中调用initgraph()函数前,应加上如下语句:
+ B( H: Q* b% B) V5 B2 b registerbgidriver(EGAVGA-driver);
+ L0 c( O% V5 c/ P+ ]# o9 u9 Q: K- ^* r* q$ E* r
它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:; [ t* L: R2 I. m& l/ O
registerbgifont(字体文件名);
) @' W7 C+ F5 M! u
5 H; `3 }* Z) j, K) G 4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
0 E$ b! f5 {2 n8 q</P>% ~$ g. |& x. g
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>( J+ s4 b+ b! q: x6 F2 Z/ ] \
& A5 Q1 |) \1 d% x; c
<TR>
1 w% e2 Y' r9 \: q8 j6 j. [<TD> void InitGra(void)
( R8 P0 x9 [% I" g$ O5 n {int GD=DETECT,GM;
: K9 A1 Q6 C2 m" A" t- P' A% c& N/ O* U registerbgidriver(EGAVGA_driver);( L# A3 _+ K" d/ U) S7 \
registerbgifont(triplex_font);8 M6 q! m2 z6 s0 p0 |
registerbgifont(small_font);
3 ?$ V' [2 x% q5 u registerbgifont(sansserif_font);
& Y/ Y8 z8 F2 ?4 A5 |5 a1 N registerbgifont(gothic_font);3 Q0 p0 z- v* e H D6 C1 x
initgraph(&GD,&GM,"");
: s. C/ F: x; m7 X0 U1 ]- F }</TD></TR></TABLE>
! c. P4 d( K% a& q- b' i2 h' ?< > 按照以上步骤,就能实现图形程序的独立运行</P> |
zan
|