数学建模社区-数学中国

标题: 让C/C++图形程序独立运行 [打印本页]

作者: lckboy    时间: 2004-6-4 11:54
标题: 让C/C++图形程序独立运行
<FONT size=3>  C/C++语言提供了十分丰富的图形函数,图形函数文件为Graphics.h,使用图形函数前须先将屏幕设置为图形模式,C/C++语言提供了下面的函数:
# C4 y* p9 z6 j* @2 @' g  void far initgraph(int far *GD,int far *GM,char *P);
- X6 o' A1 O8 r7 x# J8 Z# ^
5 p3 d) m% v0 P5 W3 q, T  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
5 o( B! B* g: ~" e
% ^4 X. J1 s& v. w1 ?# }  图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:  i) h) s; z- ?* D+ t/ O
  void far closegraph(void);: E' p7 c" }$ h" f' x

8 [1 t* g; K& U& d$ _& O  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:/ O+ y7 K( s" e
. ^* K! g7 d( G
  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
5 U$ q/ |) W  K0 V: m) B  C:\TC&gt;BGIOBJ EGAVGA
' B% W9 X) v8 R9 c" M6 m, T- |8 Y7 L! u" t% l
  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
+ b+ [% V. h  e, Q! h# W0 f7 c</FONT>/ v6 I" @$ |" K3 `

3 ]$ f! g1 b+ b2 C
9 f  C( Y+ ~& ~% O+ h) l# R<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>. _8 L. Y" f9 y7 i  e

4 p6 V7 M2 J* K5 ?0 a% a/ M, o# y<TR>, u& o$ _  `8 |& B1 i2 ]1 Q" M
<TD>  C:\TC&gt;BGIOBJ TRIP
* w$ H1 A& M0 e( ~, w6 O) e/ q  C:\TC&gt;BGIOBJ LITT9 l3 }; P' Y' J# C. }; T- f
  C:\TC&gt;BGIOBJ SANS: {1 l: r% S* Q9 C
  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>
9 c$ i. ^$ D( w' s% \* q! ?<>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
6 i: u0 K) W6 e# h; l4 ^</P>4 h! x1 X* d, m( b& V- i
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>7 o$ f3 a" C  v; I0 w) v
8 H* S4 }4 u1 O1 L
<TR>
5 d# I3 z7 ^' y1 f7 s<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
9 X* U% P% h  d; G4 B- o  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
: z. [( K/ g' H' m* y) S7 R  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
# `, N/ {6 U+ S6 E& I  a& C% K  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS+ }, ^  \. m* W( p
  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
2 `! c" k* T% r- u  g' h<>  也可以使用TLIB、PRJ程序代替TLINK。- e* D# z% X8 m6 l( `* T) ~
( A, Z& T, q( ]8 f( f+ `5 L
  3.在程序中调用initgraph()函数前,应加上如下语句:
+ e( `* q9 b& o" x% V  registerbgidriver(EGAVGA-driver);; @% s$ P6 L' t. ^: |
0 D9 Z% O; Y6 P0 P/ x9 C
  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:  ^- o: A/ R+ g% c6 s, t/ @
  registerbgifont(字体文件名);
9 [. I( C1 g) T% z. b% y$ |* z" g8 v6 E. A* q! L2 Y5 b
  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:: X6 ^& W( B  ]! s) n7 Y! m
</P>
- Z) v0 o3 W8 n0 e" T8 W<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>- P$ w0 `7 Q# t0 d& I# a) q
% Z& I" T4 @- _4 Q- s' h
<TR>
, _" k/ \9 p: I& [, ^<TD>  void InitGra(void)2 u8 B% Z$ F; [7 L9 _  d4 g( s
  {int GD=DETECT,GM;  H6 `% ?' c0 a
  registerbgidriver(EGAVGA_driver);0 U, r& c7 l3 T
  registerbgifont(triplex_font);3 K# t& A1 ^- z: m. t2 W
  registerbgifont(small_font);7 ?; q; L* T' b' s
  registerbgifont(sansserif_font);
- G& ^: \" ?/ n! S; \( O  registerbgifont(gothic_font);! h6 c: h1 \0 Y. w
  initgraph(&amp;GD,&amp;GM,"");
. ^+ t; C2 F  U* u5 K7 ~5 D/ O! y  }</TD></TR></TABLE>  M' y- h; B* T2 ~( W
<>  按照以上步骤,就能实现图形程序的独立运行</P>




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5