数学建模社区-数学中国
标题:
让C/C++图形程序独立运行
[打印本页]
作者:
lckboy
时间:
2004-6-4 11:54
标题:
让C/C++图形程序独立运行
<FONT size=3> C/C++语言提供了十分丰富的图形函数,图形函数文件为Graphics.h,使用图形函数前须先将屏幕设置为图形模式,C/C++语言提供了下面的函数:
% z I: F: O: Y/ u7 Q# k; Q
void far initgraph(int far *GD,int far *GM,char *P);
4 ^2 y5 `, x5 }! N; ? p
$ s- u/ |; I' }8 I
其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
& p3 k2 J# d4 h4 j1 Z6 C6 H
: b, r* U" Z5 Z2 I- _- d
图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
; Y0 I$ |8 e5 l; _
void far closegraph(void);
8 Q O# s! o% N7 g
& H L1 r# L5 |( {& ]& R
许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
1 z! @$ x* T* w( F2 m# T3 T
6 ]/ A9 }7 M1 S! J2 D' E
1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
$ d3 O/ e- R; _9 A: g$ E, t% r2 O
C:\TC>BGIOBJ EGAVGA
% K# D. [: u+ n" v+ J8 _( k
0 V' n l& Z$ Y( J4 I! `$ ]
按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
. A- X8 U9 B7 S. X: [0 }
</FONT>
2 w- `. C1 i8 m" y3 F" n ?
# v$ j9 Y& @9 F0 H6 @/ o
' P; |8 ^ ]/ | _
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
5 S8 V0 x! O j% Y3 F
! N& [6 E( M6 K B: _& r7 L
<TR>
1 X% L5 R; e/ ]: @8 O- d8 f
<TD> C:\TC>BGIOBJ TRIP
* B0 ]" A+ g' E* {' ^0 A; U, \6 j
C:\TC>BGIOBJ LITT
, a3 E1 R% Y4 b; o( M: Y
C:\TC>BGIOBJ SANS
; T% O$ E* C( D1 Q; J- e3 i
C:\TC>BGIOBJ GOTH</TD></TR></TABLE>
# [ W0 s# ?( S/ I! q' {2 e
<
> 2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
, F i- l/ o9 \! [
</P>
9 F% r- O, \) R% G! V
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
f( A4 P( h" q' q" L1 R
" m1 L* Z' e' y% S& [. ?6 [/ ~; T3 M
<TR>
. x* e' C9 {5 M( J0 w
<TD> C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
. x4 U- |) `. L: F' o4 o) e1 y; B
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
$ M0 V$ T+ E. I) e) C! O" }
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
& P0 s: M( |0 s
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
& E3 O5 `7 h2 u0 A2 Z( o
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
/ c5 O' a! M! q% @' a1 i
<
> 也可以使用TLIB、PRJ程序代替TLINK。
O) q2 G2 w3 x, l! I
) {9 [. w* }1 v3 ^8 k' X0 n
3.在程序中调用initgraph()函数前,应加上如下语句:
3 M9 d- k" p. f( i
registerbgidriver(EGAVGA-driver);
% E3 a+ W8 A4 P! i# U" x" j
8 g3 E. g# _8 Y l8 T) A
它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
9 d4 m8 r3 n) q
registerbgifont(字体文件名);
) Z/ c$ x- P$ J% S) ]1 s9 g
4 I& X, l& |) s7 R
4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
& y$ C+ T6 p$ t* c% q
</P>
5 U/ p, a# M' l9 F& ^
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
: C- z) S3 x, e7 j( @- n1 m5 _+ }
5 l4 X" R; n8 N+ _- Y+ I4 I
<TR>
: t4 l9 U; W0 C+ C9 R' |2 U& k
<TD> void InitGra(void)
8 R1 V8 H1 Q4 c/ I
{int GD=DETECT,GM;
. r1 e6 P( t0 n2 a
registerbgidriver(EGAVGA_driver);
9 z M: ? P; n3 @. C3 b: q
registerbgifont(triplex_font);
1 ~0 B5 m B' Q6 r6 Y
registerbgifont(small_font);
9 s1 m* W. M- }" P, @- E S2 e
registerbgifont(sansserif_font);
0 T5 x2 |5 k; x9 z. u& B
registerbgifont(gothic_font);
! l3 @! a: |: W9 l( \ [
initgraph(&GD,&GM,"");
' {9 ]; L% @" l- y% }7 A) W N
}</TD></TR></TABLE>
8 L6 y% c. `4 {" W
<
> 按照以上步骤,就能实现图形程序的独立运行</P>
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5