QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5464|回复: 0
打印 上一主题 下一主题

让C/C++图形程序独立运行

[复制链接]
字体大小: 正常 放大
lckboy        

26

主题

1

听众

218

积分

升级  59%

  • TA的每日心情

    2014-2-22 20:49
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    群组2014美赛MCMA题备战群

    群组2014美赛MCMB题备战群

    跳转到指定楼层
    1#
    发表于 2004-6-4 11:54 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    <FONT size=3>  C/C++语言提供了十分丰富的图形函数,图形函数文件为Graphics.h,使用图形函数前须先将屏幕设置为图形模式,C/C++语言提供了下面的函数:8 O4 B2 M# S+ \, K  u+ l1 _
      void far initgraph(int far *GD,int far *GM,char *P);4 J' `! J# J* C! v5 z) D% H. j, t* o

    5 E" B- v5 w$ ?* f  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。; r4 e1 L9 \; X& M4 v
    * z. u' r: h8 ]  t9 w
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:  T' f* L  o+ ]4 F$ A
      void far closegraph(void);) d2 x0 T3 P. J

    ( J) e" D9 B$ _( ]- Z5 Y  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:. q# k7 b; N) z6 K% R8 _

    5 I. z' r8 o* `2 k2 x  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:, `* |7 F2 c; `  _8 ~3 f7 x4 v
      C:\TC&gt;BGIOBJ EGAVGA, |2 }8 f7 S0 c3 R1 ?! Z+ f% _
    & q) c' R  V1 D$ T8 O- [
      按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:% k9 }# [) p3 ]5 d. r
    </FONT>5 Z3 v) x  O4 O) G- \7 z# G) }

    + ?4 _9 s9 P! ~& C( M
    / u7 z* o) g/ g; t. {<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>+ g  r8 g- e  J) e
    9 ~% P% M, D7 x8 O
    <TR>! k$ n5 R( K2 W3 @. |" C7 Y
    <TD>  C:\TC&gt;BGIOBJ TRIP( R2 }" J8 H7 z2 z
      C:\TC&gt;BGIOBJ LITT
    0 {$ u( z& M; i' y& t2 v  ^  C:\TC&gt;BGIOBJ SANS
    " H6 l7 R* R- }6 J  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>+ F$ T' y3 @- O3 E
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
    5 U2 y" F* Q* K* j8 ?</P>% W. v+ k% j2 L2 ^! Z
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>) S, I9 s. r7 z: h4 O0 B

    - c+ J3 o2 x; _( \# x# ?$ f<TR># v. r9 x8 }  E& n3 ^% c& q* \
    <TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
    0 ?0 H- v1 P& w' i; w0 W2 H  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
    2 ?) k6 Z7 [; z0 B6 X/ n- r% K  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
    " Q9 \" f; ]7 Q$ [+ J+ Q  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS. {5 y: V6 I; E! N
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
    % Q: T) L+ y4 N$ R  ?0 }- r* d<>  也可以使用TLIB、PRJ程序代替TLINK。9 @3 t! k4 N. b3 F% h% [/ B

    8 Y- k/ y7 c2 r7 t  3.在程序中调用initgraph()函数前,应加上如下语句:2 L8 s( q/ C' y* e; D0 f9 \. s7 ~
      registerbgidriver(EGAVGA-driver);
    & ^- w  j  w9 Q* w. v- K0 v. _: q+ X# F7 w) ]) a
      它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:* c# N: l& a9 [- V) T; J0 U
      registerbgifont(字体文件名);
    + f! P5 H" X3 L% B, z0 X& G9 g, c. l, v
      4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
    ) g& c; D. H; N</P>% [2 |- {* `) [, k, S
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>7 K8 G+ V" Q1 X7 L9 }& _
    + ]$ B) i. N) H8 \" h. z* }  q# t
    <TR>
    * F9 L' `2 l! {5 t0 T, N4 e<TD>  void InitGra(void)
    , A. k* t: p- f& O* ~/ s  {int GD=DETECT,GM;
    5 F  k/ }: [- q  registerbgidriver(EGAVGA_driver);$ L4 @3 \* Z2 S2 z% h% M
      registerbgifont(triplex_font);
    6 K. r& v1 M2 S& z8 X  registerbgifont(small_font);
    $ C4 I2 i' H3 o) m  registerbgifont(sansserif_font);( v4 K* q4 Q' h/ e/ p( x
      registerbgifont(gothic_font);- o& R& f. `1 I; H( s$ U! r
      initgraph(&amp;GD,&amp;GM,"");
    1 D" h' n5 s4 J4 @8 Z: v* I$ \  }</TD></TR></TABLE>
    6 [+ i3 k- Q& F6 Y, ^<>  按照以上步骤,就能实现图形程序的独立运行</P>
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-20 08:44 , Processed in 0.427300 second(s), 51 queries .

    回顶部