数学建模社区-数学中国

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

作者: lckboy    时间: 2004-6-4 11:54
标题: 让C/C++图形程序独立运行
<FONT size=3>  C/C++语言提供了十分丰富的图形函数,图形函数文件为Graphics.h,使用图形函数前须先将屏幕设置为图形模式,C/C++语言提供了下面的函数:: w4 v3 T1 G4 _
  void far initgraph(int far *GD,int far *GM,char *P);  G& [* Q5 L" L

) q5 c3 o8 D% j& ~, _! J4 `9 r  M  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。/ w8 |3 |* C$ O. b& m/ x

9 ^! G8 @$ j$ j  m& T2 |  图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:7 q5 L4 d5 q( u# x8 x, w% W
  void far closegraph(void);
# q- y" h" e1 N) }6 R, S
2 p$ ?- O6 w: |$ \; e  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
, \- e9 @* ?6 X& L0 _: x& A1 o9 m' }& A5 f
  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
5 u. ]9 L' n3 W: \5 x7 e3 }  C:\TC&gt;BGIOBJ EGAVGA* c* H% v% d6 S, j- u  T

2 q7 U' R% Z; d- ~+ h, }  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
9 x/ m& a, V8 _" Z, b</FONT>4 L6 O, X) @0 n* O& n' R6 j

4 p$ d; P$ I; j4 T: B4 V# P" F$ a; @4 v" A! g7 v$ f* I; C
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>5 Q5 U4 v/ V, N4 Z: `. t

4 b+ v( t4 H$ ]: z2 d; W<TR>8 \! R  w) `$ k0 T2 r
<TD>  C:\TC&gt;BGIOBJ TRIP
: i9 O0 h$ K6 Q+ S  C:\TC&gt;BGIOBJ LITT
; o' @+ t4 Q7 P# e+ O6 R  k  C:\TC&gt;BGIOBJ SANS
# C; }" G. ^0 k" V  Z6 v& [  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>4 y0 t: v* Q% N# k
<>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
$ \7 m" |7 i1 |+ Z2 p8 b</P>
3 @7 x& ]* }7 ]3 y' w5 r/ W- J<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>+ e$ l8 k- e; ?2 h1 A! B
5 u" E5 L/ y. ^1 E
<TR>; A" \& e8 K; H0 u# R% r2 K
<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA& M- L* o1 Q/ J  r
  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
) G( v# \- E2 `' r6 }1 E  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT. ^0 s- q* y6 }+ @0 j. \4 g1 k
  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
5 n7 P* @5 u  x% @  W  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>, V4 M6 X, s% A
<>  也可以使用TLIB、PRJ程序代替TLINK。
& X: `+ g" B+ o4 K6 E  z2 M( A* F' S2 k1 [) G. v: }4 m
  3.在程序中调用initgraph()函数前,应加上如下语句:
! j$ k# `2 |( R7 a/ L, `' b  registerbgidriver(EGAVGA-driver);
7 Y6 ~3 A* ?) {3 @  O; n" d
9 F& S5 O/ I) r- {$ z  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
' f5 ~  D: U+ D0 S, H2 x  registerbgifont(字体文件名);
6 b2 w. d5 j+ e" L* w+ r( X1 I9 [
  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
" `" n1 e8 a0 l</P>
# w: h3 i. B# b! M<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
2 C( X( U' p# M" k% ]3 y
7 R+ v& d* ]5 y) _* e! Q8 ~<TR>
- }$ z# L; ^% r<TD>  void InitGra(void)
6 e& j; T9 G6 Y0 f6 N, f  {int GD=DETECT,GM;
  ^  u$ S! H& G- N& v  registerbgidriver(EGAVGA_driver);1 x$ h7 P4 \+ e8 C7 T
  registerbgifont(triplex_font);4 D. I2 I3 y* b/ \
  registerbgifont(small_font);
& A  ^4 Q/ u6 C' a, x  Y4 x  registerbgifont(sansserif_font);# M0 w; C( O; n( |. W
  registerbgifont(gothic_font);
; P# d: P0 p. v2 M/ p$ I  initgraph(&amp;GD,&amp;GM,"");3 c. i6 Y' P. [
  }</TD></TR></TABLE>* W( N/ b& ^. x! V# q& H" L: w# [
<>  按照以上步骤,就能实现图形程序的独立运行</P>




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