数学建模社区-数学中国
标题:
让C/C++图形程序独立运行
[打印本页]
作者:
lckboy
时间:
2004-6-4 11:54
标题:
让C/C++图形程序独立运行
<FONT size=3> C/C++语言提供了十分丰富的图形函数,图形函数文件为Graphics.h,使用图形函数前须先将屏幕设置为图形模式,C/C++语言提供了下面的函数:
0 [* y8 w& {9 ~: c/ r
void far initgraph(int far *GD,int far *GM,char *P);
7 [! a7 ^4 ~) J1 _ M
3 a# P2 R, Y/ m9 P) [9 b
其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
0 W4 l0 n' @- W9 q) d ^) f
3 w& Q0 c1 q% ^/ r% S
图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
1 k) _0 m: O! m" [7 }) m6 p
void far closegraph(void);
, @9 v, Q& E. E0 ]/ ^
4 S' s$ A! y/ D" u) W
许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
& P& Z7 b0 H# a2 ^& f5 v
8 c; S6 |* F2 D& y
1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
" b# b4 ~: Q. ?* _* e0 ?' }/ `. d
C:\TC>BGIOBJ EGAVGA
3 I5 V5 }3 {$ E
8 b. `4 N2 Z9 c7 l
按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
" M+ X; B2 m7 T; k+ o! K
</FONT>
0 q8 M4 ^+ e6 u2 o
# B$ g2 ^" ~$ G5 f& u* U! {! l, M
" }+ `+ z: V) D+ @& o
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
5 \3 Y1 F, v8 w7 |8 X7 Q/ `
$ x4 g. N# A. W5 `
<TR>
! B" P0 Q3 Z' S6 d+ G3 A
<TD> C:\TC>BGIOBJ TRIP
& v& ~9 E2 P/ f4 }7 _
C:\TC>BGIOBJ LITT
9 p+ X6 M h" a6 G" R2 x
C:\TC>BGIOBJ SANS
. j* y9 x: y4 `3 D- \" K% ?# |
C:\TC>BGIOBJ GOTH</TD></TR></TABLE>
0 i5 p7 _$ ]& R1 F
<
> 2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
W1 |6 l o" m9 g" q. }1 d( p
</P>
1 U# l5 `2 L5 g: B- u5 h
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
! A/ o" k Z- T
) |" b6 c/ k2 Y* |* Y
<TR>
( e: B f6 n; S4 ]( y: E
<TD> C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
' `; X( a Q8 ^/ p- h
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
, m7 G9 a7 J- E; [3 v8 S5 s
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
3 ~% V8 ]' `3 H5 Q1 z
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
% L, `1 }" M1 w" X* Y7 s9 n2 I
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
' T: K, Q' w: _; K: w
<
> 也可以使用TLIB、PRJ程序代替TLINK。
. f3 Y' o3 b* A5 W$ {2 t* C; [' l
% C5 ~" p% l1 o6 D- O( D( ?! w) |4 P
3.在程序中调用initgraph()函数前,应加上如下语句:
9 o( _; w& }" w7 h
registerbgidriver(EGAVGA-driver);
! |) c& s- P4 q5 y! _
& ~8 q& |, F3 J1 {% s
它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
. N1 q+ @+ w: @. f5 f
registerbgifont(字体文件名);
; c8 w% e- D. w$ n8 O
6 M4 O9 H+ E+ k
4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
/ h& r! u7 T8 ?5 Q4 \9 G) P
</P>
( C' L$ R! J9 f9 |% S% A
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
+ z. {7 i4 ` x, n8 m
$ ?# t( `8 |) U) J" d" G
<TR>
, O3 i6 ^) _# f
<TD> void InitGra(void)
) O5 j9 m" H+ e$ ]
{int GD=DETECT,GM;
3 ?- V4 t+ h f1 M
registerbgidriver(EGAVGA_driver);
; ]' A M1 A5 X ^6 K. @3 Q5 D! J
registerbgifont(triplex_font);
1 c2 l2 U8 K5 i+ q
registerbgifont(small_font);
' A! D, N& e% J- H; z2 S
registerbgifont(sansserif_font);
# W5 q8 D' K7 k
registerbgifont(gothic_font);
0 d, G9 Z! P" [( a' S4 J0 p+ I
initgraph(&GD,&GM,"");
( l2 p/ Z% p- j% _' l" Q! E
}</TD></TR></TABLE>
K+ p9 A% @9 [3 d5 S
<
> 按照以上步骤,就能实现图形程序的独立运行</P>
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5