数学建模社区-数学中国
标题:
让C/C++图形程序独立运行
[打印本页]
作者:
lckboy
时间:
2004-6-4 11:54
标题:
让C/C++图形程序独立运行
<FONT size=3> C/C++语言提供了十分丰富的图形函数,图形函数文件为Graphics.h,使用图形函数前须先将屏幕设置为图形模式,C/C++语言提供了下面的函数:
! W8 G* z+ F, R0 g$ r! W9 g% G
void far initgraph(int far *GD,int far *GM,char *P);
& Q/ R7 U W; R8 Z1 k
) S x: K4 t# Z' L* L* H
其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
# b7 h5 S" X5 u' S4 Y& p
% w& j9 S' }1 C* R' N
图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
, |+ N4 r1 l E; i, }
void far closegraph(void);
! G1 a0 J( b+ T! x. C- l% V& k
% L4 O( _4 i) V1 T
许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
% x4 y* }. |0 K
3 s% o5 k- M2 m9 e4 Q
1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
$ @" ]/ }- r" }
C:\TC>BGIOBJ EGAVGA
2 P3 }( d: ~+ } W1 l! Z1 C
' q" ^- f: ]+ H. [+ N5 _* E. K2 z0 y. O
按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
. t" q2 A% s+ D6 U* D5 B/ A; o
</FONT>
9 k6 t8 @* V) [# h* Q/ g" @
3 K4 V$ s0 S3 b
' z$ y7 N q- S. {6 T
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
7 G6 s6 M4 V$ M9 _) G: t6 L
8 Q) G9 a ~& b2 ~
<TR>
0 Z% q8 `5 h5 {
<TD> C:\TC>BGIOBJ TRIP
/ g* a$ t4 v1 ~' O& n
C:\TC>BGIOBJ LITT
; _- j+ y7 _+ k/ X [" f2 r8 r; d
C:\TC>BGIOBJ SANS
, ~ F+ Q% M/ Q7 p$ I- _
C:\TC>BGIOBJ GOTH</TD></TR></TABLE>
( r3 r" w6 D* D0 l: A/ D; d( K& l
<
> 2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
9 ], j9 t0 z& q! v" r
</P>
; U R* V/ U2 q; S" R# P
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
# H/ m( s* O: |$ p% K1 N
) D: H4 b7 g) [
<TR>
! E7 s8 t7 p- P: U4 e1 b: F
<TD> C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
- k5 U$ p. j& Q" n" D4 N9 f
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
4 j4 @9 x! K8 ~& w: c# h a
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
) ^$ ?. ]- i$ Y) I. [! \- g0 u/ z
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
% N: |% e# u4 X% ?
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
7 L# {; j A; y, X( H9 D7 k+ g
<
> 也可以使用TLIB、PRJ程序代替TLINK。
7 u! R S6 V& \6 q) u& c& H
8 N$ {0 Q) `8 N1 x9 I+ Y# R; m) i
3.在程序中调用initgraph()函数前,应加上如下语句:
! o. y' e0 |* p. _/ v3 i1 p( H5 k
registerbgidriver(EGAVGA-driver);
& ?4 e! w% C" ?8 g* n0 L6 B
* s, z% _; W+ w2 H4 y
它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
! D% B3 [5 c& Z" R5 E& U. O, K
registerbgifont(字体文件名);
! F( j; \/ J" l1 D, X5 w
! Z$ |4 T6 t+ ^, x5 A+ [* K
4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
+ J/ c6 [9 w5 m3 S( t; I2 @7 U
</P>
. U# T$ \ r+ o8 ?: K7 W- |
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
" F1 m3 S9 V; }5 e6 P( `
2 [" Z0 o7 t v5 z3 ^" M
<TR>
0 M# f5 \! F- V: d1 I; C
<TD> void InitGra(void)
. T% l- d4 \5 a5 u+ k% r/ k% l9 H; x9 V
{int GD=DETECT,GM;
, \0 }, E# q3 {5 H
registerbgidriver(EGAVGA_driver);
5 z) Z0 ~3 u" l' X) X+ ?3 P
registerbgifont(triplex_font);
9 H3 N0 j( i2 A. M# D3 _/ a: `/ ^
registerbgifont(small_font);
9 u# E- \9 F9 F, d+ l" H5 c/ I
registerbgifont(sansserif_font);
$ J7 Q! i0 @3 H: b0 ?/ {; Z/ K
registerbgifont(gothic_font);
K5 G4 @0 |. [$ W8 ` \! [4 z/ a6 h, O
initgraph(&GD,&GM,"");
; k+ ~& ?( u# u
}</TD></TR></TABLE>
4 O# u! q- j" s$ i/ P- D# s6 b9 ~
<
> 按照以上步骤,就能实现图形程序的独立运行</P>
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5