数学建模社区-数学中国
标题:
让C/C++图形程序独立运行
[打印本页]
作者:
lckboy
时间:
2004-6-4 11:54
标题:
让C/C++图形程序独立运行
<FONT size=3> C/C++语言提供了十分丰富的图形函数,图形函数文件为Graphics.h,使用图形函数前须先将屏幕设置为图形模式,C/C++语言提供了下面的函数:
9 A/ z5 A- i" M# d2 s
void far initgraph(int far *GD,int far *GM,char *P);
3 [ ~$ ?0 H- f$ s
+ k2 }4 [. p5 h: z# o+ }
其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
( `& p1 ~7 [/ X/ Y4 @
' T; |' A3 I$ u, z8 A9 L
图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
2 b3 Q. N [" d M3 ]3 Z k
void far closegraph(void);
" X/ A' ~9 b o' ?* ?8 [; `. T* \
7 Y( P ^& E1 r+ K& ~; L% m8 W( |
许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
0 U- @& m$ e8 R1 l
4 o1 M' u; y D' C3 z, Q' w$ r
1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
( Z7 s6 q7 X3 D- Y9 |( P6 M7 s7 P
C:\TC>BGIOBJ EGAVGA
& @3 J1 d; K6 j, f
: g$ _+ Z9 g$ U2 j/ Y
按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
1 Q/ H! Q% ~, |
</FONT>
N2 _6 O3 H* H+ y
' n1 h" {' O- x/ E0 q7 B7 n9 f
2 N- N% K( Q1 E r q8 `' \
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
, t0 {7 @4 q( {8 t2 d3 Y5 s, n2 ^
0 u2 J& m7 w- D" t0 ?9 G9 T, r
<TR>
K5 j$ I5 U( |3 l* G2 f0 |
<TD> C:\TC>BGIOBJ TRIP
% U9 X' R6 y8 O
C:\TC>BGIOBJ LITT
$ M4 _8 M: P) ?5 z
C:\TC>BGIOBJ SANS
) z/ M+ V0 o2 i) T$ v8 e
C:\TC>BGIOBJ GOTH</TD></TR></TABLE>
7 k$ n3 }4 u9 \$ K2 U
<
> 2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
# n2 J- E) w& P
</P>
4 J* P, C- t T) K/ ]9 `; w
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
& T2 \% J* D& h, z1 r0 b; \; E
! J: ?4 v$ v( x; k8 k
<TR>
9 v3 R0 v6 U0 G% E
<TD> C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
# H( U7 o8 u1 J+ e" S+ e# ]
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
. N, b; q" {- U8 t* W
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
t! S' p2 L: M( |$ O$ h
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
% v9 k) w! D; v9 V8 A7 _0 N
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
" x' z$ ^$ g5 q& A) ?0 _
<
> 也可以使用TLIB、PRJ程序代替TLINK。
. P. r6 W- N( k9 i0 x$ d4 H
3 I K' t+ n `0 l- x% C
3.在程序中调用initgraph()函数前,应加上如下语句:
z Z. b, {7 w9 Y
registerbgidriver(EGAVGA-driver);
% R8 g% l+ Z% g/ q$ ?$ }
5 D* n8 e+ T" A1 g# s, n& Z
它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
% R- |& g J7 m0 q5 d7 L4 h: C
registerbgifont(字体文件名);
& P5 v; {( z; {, D; z
9 N/ D K+ {6 q) M
4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
! i# m& L9 x0 d0 [5 Q$ o L8 l
</P>
$ q2 e: N- ]- n$ Z6 G d2 i
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
( Y9 N8 R% `$ _# e0 l
% {4 T7 o1 @0 |' R H
<TR>
% }: M, |3 q w* e
<TD> void InitGra(void)
' {) P( o( f% k
{int GD=DETECT,GM;
7 [$ `/ J5 r* b
registerbgidriver(EGAVGA_driver);
0 Z: ?% W% i4 u% }, |3 j; `
registerbgifont(triplex_font);
! x' T8 B7 o' H9 B1 @- G) V, {
registerbgifont(small_font);
1 Y9 U: b! G: @. b5 n$ w4 i
registerbgifont(sansserif_font);
2 [: g/ `4 @8 |' _+ A
registerbgifont(gothic_font);
/ U0 B! l! B: Z0 U1 C4 M
initgraph(&GD,&GM,"");
T! U: h9 s5 p
}</TD></TR></TABLE>
j8 h8 q( w3 a2 b
<
> 按照以上步骤,就能实现图形程序的独立运行</P>
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5