- 在线时间
- 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++语言提供了下面的函数:
) L! ~9 z4 H* x, l0 A1 f void far initgraph(int far *GD,int far *GM,char *P);
" K: A; Z- r+ N/ y
* R4 Y/ I# C1 f" W( d 其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
3 ?: e# q* G0 j9 p$ w. g6 W7 y
x1 o' ~. H- x+ o3 j B" F' ] 图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:0 e# n% p- d# R$ t3 `% a
void far closegraph(void);
' c( q) s/ A( A J5 h2 F6 U+ k) S( s3 ?: g4 t$ l# n
许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
9 z0 ~! G; q- Y6 O% C$ V
; B9 F# Q3 v2 a M 1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:& E/ Z4 Q5 `! d& e
C:\TC>BGIOBJ EGAVGA
& S( {' F& }: G7 {6 a) `6 b* F0 M# ]4 L3 x7 ^
按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
! X4 k( W; C$ @& X</FONT>
* p9 S! W1 u% F8 _4 x i+ o, R: N0 o% }, a1 M- q! o
2 u9 `( y s# i" m$ E. o
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>( K. [$ ^5 I" W
# O3 E3 ^! X X# M5 ]2 n5 M6 Y% a1 ^* N7 c<TR>
/ D$ g9 K6 Z2 g2 V0 {( B% l7 J* n2 Z<TD> C:\TC>BGIOBJ TRIP* G# A& q" B4 c/ \1 g$ O3 y
C:\TC>BGIOBJ LITT4 W! d2 n: |1 }: V
C:\TC>BGIOBJ SANS
# q9 q( K( Q3 n2 e2 ~2 k C:\TC>BGIOBJ GOTH</TD></TR></TABLE>
A2 W) x9 ~' Z% l5 n1 }' ] \4 F< > 2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
5 Y+ j, M5 x' P9 X$ u# ]& c</P>
! `, T$ m5 P8 W3 f( a- @<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
: E1 z) C$ P/ @( T, W
1 ?. |# q$ _* L6 a<TR>
. t% O8 i+ g0 n<TD> C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
. Y' ^0 z1 \% w/ P7 ~ C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP3 [, j7 X7 U; d9 }; H
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+LITT) z2 R. E6 z& G& j$ J
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
% H2 R- E. ]( x# C; i5 N- O C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>- ^ p! {$ [2 W- r/ ?4 O
< > 也可以使用TLIB、PRJ程序代替TLINK。
4 I( n" v* @# ?4 K8 X3 X* F" u% ~4 i( m8 D/ m( x% ?
3.在程序中调用initgraph()函数前,应加上如下语句:
; H/ O+ {, ?/ }% q registerbgidriver(EGAVGA-driver);/ ]; r# | i6 y- c: ~
, U6 ^9 X; o) ?0 K 它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句: t8 B h9 M2 [ k! H: u
registerbgifont(字体文件名);
% {- {2 t" {$ \5 a, O
" }. e% x' R$ e+ e9 J 4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:( I( {+ _( R$ r! M
</P>
4 G; N p8 s9 q8 J# t: w( @& C<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>- Q- K( U! h5 @3 Y
6 E* l3 f3 N: |2 T$ C9 L
<TR>% B% B2 V5 P; k$ m. |( y
<TD> void InitGra(void)
R+ B: r* \, j" m. c {int GD=DETECT,GM;1 r$ K, @( R' J5 v! J
registerbgidriver(EGAVGA_driver);$ D8 p/ x" H5 k% h! {
registerbgifont(triplex_font);
- `( U/ L& F* H8 | registerbgifont(small_font);
- }6 u, m: W4 j registerbgifont(sansserif_font);
* D! P7 M4 K( {' B registerbgifont(gothic_font);
0 Q; I" Z7 V5 Q3 i) ?. V, ] initgraph(&GD,&GM,"");
4 W6 P; E) P7 ~+ U( P }</TD></TR></TABLE>9 b% n `* ~" D
< > 按照以上步骤,就能实现图形程序的独立运行</P> |
zan
|