数学建模社区-数学中国

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

作者: lckboy    时间: 2004-6-4 11:54
标题: 让C/C++图形程序独立运行
<FONT size=3>  C/C++语言提供了十分丰富的图形函数,图形函数文件为Graphics.h,使用图形函数前须先将屏幕设置为图形模式,C/C++语言提供了下面的函数:
! t) W% \$ \' ]0 [; @  void far initgraph(int far *GD,int far *GM,char *P);
* O$ [8 S! Z! ^' D/ b: B9 C) p7 s
4 G% t! h" B( M% w* J  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
0 w0 Q; ^( Q% n! {
: {- _& Y; ~0 ]$ R5 s2 y) q- ~  图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
1 H' X6 S% ]6 g8 M  void far closegraph(void);$ J! r# H- N8 W1 \

- ]) a( a. {5 U5 U' _! S. a  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
  k* \% _6 u6 H8 f1 p& L2 Q) B
( C, |* d6 R5 a. _" r; |  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:* l9 l9 U2 V  `0 V0 Y! [* f
  C:\TC&gt;BGIOBJ EGAVGA( P& X( W! o9 ~" d4 G

$ |! S1 t9 F4 y  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:/ }  v! |5 f& P
</FONT>4 n! t& {& L$ j1 E, k& g1 d" D

: T) Q- ?) X9 F0 P4 t' i  \$ `, x3 O' i' K4 d8 o
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
, _) b; o4 f: A- K" q( W5 }# x- B2 G2 Y3 g0 a  Y
<TR>; b0 I  w; V7 a2 f1 _
<TD>  C:\TC&gt;BGIOBJ TRIP
/ ~$ V, X: P9 d' t) q  C:\TC&gt;BGIOBJ LITT7 a/ m* P2 U9 k& y
  C:\TC&gt;BGIOBJ SANS. q  K$ }  S: g4 e; b- q6 @/ u
  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>
* O# y: s7 U* y! m/ }<>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
3 E2 P# G$ V, h7 m5 N* f</P>
! V% `( Q  ~) i+ B8 N5 M7 |: \! @3 I<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
+ N' W$ m  W# A, P6 u+ u( `8 A# r2 w7 E, j+ t/ s! Q% Y
<TR>) a# E& }5 _4 e0 [8 _5 D
<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
" H/ ~3 e+ M" H( i  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP4 ~. c4 n( F7 N3 m5 e
  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
8 S$ [0 S! ]5 V5 R: p7 I& `  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
, ^8 K, }1 h) F4 ?" ~! |  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>& @2 ?( ]. {4 l; J
<>  也可以使用TLIB、PRJ程序代替TLINK。; Q$ {+ `: R; ?

5 l( b/ A7 N( ~2 ^" t, j  3.在程序中调用initgraph()函数前,应加上如下语句:
9 y+ }9 k8 [/ Y. C) c2 z  E  registerbgidriver(EGAVGA-driver);
% W( [+ G# I' e* c
- W9 {6 Z) v8 I9 T6 a  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:% f- i4 Y) F1 \9 V
  registerbgifont(字体文件名);: E) M4 m# K" I! I7 Z! ^. v, k/ C

' r" y6 F, t/ F# x9 d! j  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
% F1 J  t+ ]: z, O& ~2 G3 ^</P>
8 B! H+ M  y  u$ l* l* t<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
5 }* `) r$ R" U& Z" S
: C0 D0 ~  S$ T4 W<TR>& X5 ?- V0 R4 t$ B. x* M$ I
<TD>  void InitGra(void)6 Z6 F9 {5 C# [  A4 A4 ^: e
  {int GD=DETECT,GM;
+ D4 B" Y8 D8 F0 S1 ~( A; z  registerbgidriver(EGAVGA_driver);+ k: e3 i+ R/ M& e+ t9 `
  registerbgifont(triplex_font);
5 e; ?( e% V: I6 t8 L' w  registerbgifont(small_font);# I2 A0 o  X* ?2 U
  registerbgifont(sansserif_font);. [0 y! {& ?! T0 K1 x4 S; x
  registerbgifont(gothic_font);* E) U1 `( c" a# c$ @
  initgraph(&amp;GD,&amp;GM,"");
2 j3 _; H$ s/ b  U$ M, @8 H  }</TD></TR></TABLE>
+ T& v9 k: q% u$ g2 c9 f/ U' i<>  按照以上步骤,就能实现图形程序的独立运行</P>




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