数学建模社区-数学中国

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

作者: lckboy    时间: 2004-6-4 11:54
标题: 让C/C++图形程序独立运行
<FONT size=3>  C/C++语言提供了十分丰富的图形函数,图形函数文件为Graphics.h,使用图形函数前须先将屏幕设置为图形模式,C/C++语言提供了下面的函数:0 [* y8 w& {9 ~: c/ r
  void far initgraph(int far *GD,int far *GM,char *P);
7 [! a7 ^4 ~) J1 _  M3 a# P2 R, Y/ m9 P) [9 b
  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
0 W4 l0 n' @- W9 q) d  ^) f3 w& Q0 c1 q% ^/ r% S
  图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:1 k) _0 m: O! m" [7 }) m6 p
  void far closegraph(void);
, @9 v, Q& E. E0 ]/ ^
4 S' s$ A! y/ D" u) W  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
& P& Z7 b0 H# a2 ^& f5 v
8 c; S6 |* F2 D& y  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:" b# b4 ~: Q. ?* _* e0 ?' }/ `. d
  C:\TC&gt;BGIOBJ EGAVGA3 I5 V5 }3 {$ E

8 b. `4 N2 Z9 c7 l  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
" M+ X; B2 m7 T; k+ o! K</FONT>0 q8 M4 ^+ e6 u2 o

# B$ g2 ^" ~$ G5 f& u* U! {! l, M" }+ `+ z: V) D+ @& o
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
5 \3 Y1 F, v8 w7 |8 X7 Q/ `
$ x4 g. N# A. W5 `<TR>! B" P0 Q3 Z' S6 d+ G3 A
<TD>  C:\TC&gt;BGIOBJ TRIP& v& ~9 E2 P/ f4 }7 _
  C:\TC&gt;BGIOBJ LITT
9 p+ X6 M  h" a6 G" R2 x  C:\TC&gt;BGIOBJ SANS
. j* y9 x: y4 `3 D- \" K% ?# |  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>
0 i5 p7 _$ ]& R1 F<>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
  W1 |6 l  o" m9 g" q. }1 d( p</P>1 U# l5 `2 L5 g: B- u5 h
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
! A/ o" k  Z- T
) |" b6 c/ k2 Y* |* Y<TR>
( e: B  f6 n; S4 ]( y: E<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
' `; X( a  Q8 ^/ p- h  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
, m7 G9 a7 J- E; [3 v8 S5 s  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
3 ~% V8 ]' `3 H5 Q1 z  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS% L, `1 }" M1 w" X* Y7 s9 n2 I
  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>' T: K, Q' w: _; K: w
<>  也可以使用TLIB、PRJ程序代替TLINK。
. f3 Y' o3 b* A5 W$ {2 t* C; [' l% C5 ~" p% l1 o6 D- O( D( ?! w) |4 P
  3.在程序中调用initgraph()函数前,应加上如下语句:
9 o( _; w& }" w7 h  registerbgidriver(EGAVGA-driver);
! |) c& s- P4 q5 y! _& ~8 q& |, F3 J1 {% s
  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:. N1 q+ @+ w: @. f5 f
  registerbgifont(字体文件名);
; c8 w% e- D. w$ n8 O6 M4 O9 H+ E+ k
  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:/ h& r! u7 T8 ?5 Q4 \9 G) P
</P>
( C' L$ R! J9 f9 |% S% A<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>+ z. {7 i4 `  x, n8 m

$ ?# t( `8 |) U) J" d" G<TR>, O3 i6 ^) _# f
<TD>  void InitGra(void)) O5 j9 m" H+ e$ ]
  {int GD=DETECT,GM;3 ?- V4 t+ h  f1 M
  registerbgidriver(EGAVGA_driver);
; ]' A  M1 A5 X  ^6 K. @3 Q5 D! J  registerbgifont(triplex_font);
1 c2 l2 U8 K5 i+ q  registerbgifont(small_font);
' A! D, N& e% J- H; z2 S  registerbgifont(sansserif_font);# W5 q8 D' K7 k
  registerbgifont(gothic_font);
0 d, G9 Z! P" [( a' S4 J0 p+ I  initgraph(&amp;GD,&amp;GM,"");( l2 p/ Z% p- j% _' l" Q! E
  }</TD></TR></TABLE>  K+ p9 A% @9 [3 d5 S
<>  按照以上步骤,就能实现图形程序的独立运行</P>




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