数学建模社区-数学中国
标题:
让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>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>BGIOBJ TRIP
: i9 O0 h$ K6 Q+ S
C:\TC>BGIOBJ LITT
; o' @+ t4 Q7 P# e+ O6 R k
C:\TC>BGIOBJ SANS
# C; }" G. ^0 k" V Z6 v& [
C:\TC>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>TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
& M- L* o1 Q/ J r
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
) G( v# \- E2 `' r6 }1 E
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
. ^0 s- q* y6 }+ @0 j. \4 g1 k
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
5 n7 P* @5 u x% @ W
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
, V4 M6 X, s% A
<
> 也可以使用TLIB、PRJ程序代替TLINK。
& X: `+ g" B+ o4 K6 E z
2 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(&GD,&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