- 在线时间
- 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++语言提供了下面的函数:
: q9 E! ^( x; M) n3 R% O- r; u void far initgraph(int far *GD,int far *GM,char *P);
) Q- p( D4 p( |: D! d# j
( Z( \( w% A- a2 |' } d# B 其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。# F" G. Z5 F, |/ x
$ B. O3 M2 D0 N+ c; z 图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
& X- R2 O! t$ g! P" a void far closegraph(void);, j- @4 i+ I) B2 {! B
' a/ @7 W1 j# ~8 U* Q
许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
( J9 w! ~; y+ a8 i1 y. C
: a1 t4 v' I/ x! F& q1 N+ L 1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:/ e- I# y: ^" B5 R: Y4 d
C:\TC>BGIOBJ EGAVGA
2 W5 e+ A" ~/ X: Y/ O
+ p: S+ ^6 p0 u9 w9 Q$ A% `' q 按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:$ \2 i& K F+ V p! Z( n
</FONT>% K X3 _! L+ G+ N X! I
$ U. c) ^3 c! V4 _+ \3 U* `, ?
7 \4 d- o3 i U9 ^- f+ J+ [6 E$ c<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>' O8 K9 q; A+ N7 e
, I6 Q: c; z3 d/ D
<TR>
# Y3 O- b' K- u* C. _# y8 s' h2 e<TD> C:\TC>BGIOBJ TRIP
9 b- W# }) B% s$ q C:\TC>BGIOBJ LITT
& S, h, j; c9 e3 r) n* ?4 u C:\TC>BGIOBJ SANS; I5 {/ P' J+ u& q
C:\TC>BGIOBJ GOTH</TD></TR></TABLE>
4 P- H7 P! W0 {$ L$ N+ |< > 2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
B# q: u' W- F% k8 {* j$ b0 A</P>) L( T6 s. n; m* N% K2 F
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>8 N: g1 m$ a5 y, o
/ ~/ M4 A! W9 C+ G: ?<TR>2 E/ w) A- W4 K, W' f
<TD> C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA% K/ \0 K/ z: X1 d4 @
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
! Y2 H+ b" D' ~ ?9 j C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+LITT1 k" W$ ^0 e0 |+ b2 L, n8 n* ^
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+SANS. O: |3 G( e! A; |1 `/ ]0 h
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>* D) D- m, ^" ^
< > 也可以使用TLIB、PRJ程序代替TLINK。
+ P2 G9 Z+ q% N0 `9 u! j6 k+ t$ d5 E# _
3.在程序中调用initgraph()函数前,应加上如下语句:: o3 U( r2 z. K
registerbgidriver(EGAVGA-driver);) ]+ [7 y* V0 X, h( L
+ I2 b* s+ o, T 它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:7 X- o; W# e% }- }- q1 {
registerbgifont(字体文件名);
2 |& x8 f2 \3 N ^9 G! }' b m7 s- K/ g& E8 V4 H2 T
4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
( F0 W, ~/ \* M2 m</P>0 X2 S8 v& E; _7 i8 V
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0> c* n: f+ s8 A2 Y- k1 x
4 l: R% d1 G1 [% k8 U1 a) z8 M<TR>8 t, O" J/ S% U T$ M
<TD> void InitGra(void)
1 C# M% G9 ^6 r$ S. K {int GD=DETECT,GM;. @5 H E3 V- x2 y
registerbgidriver(EGAVGA_driver);
% _& R- A4 W! Z& c! w5 H registerbgifont(triplex_font);- \& L; ~& s& ]
registerbgifont(small_font);! ^& z" H( H8 k# L
registerbgifont(sansserif_font);6 e" ~2 }4 \% U) l
registerbgifont(gothic_font);* J7 k! l/ T7 \# g# U F: i9 q4 u
initgraph(&GD,&GM,"");
2 T; b- u ]+ p4 W. ` }</TD></TR></TABLE>
g8 G( E" Z; ?: N' \4 a$ N< > 按照以上步骤,就能实现图形程序的独立运行</P> |
zan
|