数学建模社区-数学中国
标题:
让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>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>BGIOBJ TRIP
* w$ H1 A& M0 e( ~, w6 O) e/ q
C:\TC>BGIOBJ LITT
9 l3 }; P' Y' J# C. }; T- f
C:\TC>BGIOBJ SANS
: {1 l: r% S* Q9 C
C:\TC>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>TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
9 X* U% P% h d; G4 B- o
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
: z. [( K/ g' H' m* y) S7 R
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
# `, N/ {6 U+ S6 E& I a& C% K
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
+ }, ^ \. m* W( p
C:\TC>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(&GD,&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