QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5461|回复: 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++语言提供了下面的函数:
    3 Z0 \- P9 E! ?( b8 Z$ x4 |( f  void far initgraph(int far *GD,int far *GM,char *P);9 x4 [& G# \* y$ P3 W) i; D# ^+ S8 d

    8 j6 @0 t, D* O7 S! F  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。* K  h8 ^+ @7 m& R; z/ o! ?" \
    9 f/ k6 S  K* K5 N
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:3 E+ |3 N0 c: R( G
      void far closegraph(void);5 Q' ?& c, `" x0 X. X
      x9 M; @' P* \: x" _3 [! q
      许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
    2 D: v6 ]# d8 _8 K* d) V
    ( L# a2 \  v* K/ B  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:3 B& m1 I) p" S) k
      C:\TC&gt;BGIOBJ EGAVGA
    * h5 P; ?' n# _; P
    5 s  [+ p- h7 N. {9 E0 H  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
    . o/ O6 z+ v/ A& v6 x) R% E</FONT>
    ' G% c% c) H9 J% t
    : U. [: u& o: {7 q6 s' s) I9 [; @% X$ x  e: r  R8 y& c. C# Q
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>, _: ]# w1 O5 g5 W& J

    4 ]8 M  J5 d1 E6 Q, R  b; G<TR>
    5 x/ v$ w9 O* W1 I<TD>  C:\TC&gt;BGIOBJ TRIP/ ?9 s7 s: B1 v" S% K5 H  p
      C:\TC&gt;BGIOBJ LITT% I2 n( X3 f/ X- ], N& [3 d
      C:\TC&gt;BGIOBJ SANS
    9 _* l- s8 t9 g) h: G' M2 _  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>) s3 f; }6 L. `* J: b; ]
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
    $ ^. Y" F& M& c- S</P>
    , e2 @1 z3 R* ?5 U& u% M: K<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>  v% |( x4 ^/ }) c: i
    . q4 B, q5 a% E( s5 N3 o
    <TR>* c' J$ e: s) C
    <TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
    5 |: S7 ?. T% Z0 U; G( v  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP) q9 x0 X" z8 Q
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT4 @5 D6 S, m' }$ R, h5 T* M# X- p
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
    3 A. \! O2 O4 l& d, E/ A' w  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>0 t0 X2 A) D4 t/ x1 k" W/ }& i
    <>  也可以使用TLIB、PRJ程序代替TLINK。
    9 @) e: Z" `7 E% N) ~, H& o% _/ b+ P/ Z4 H
      3.在程序中调用initgraph()函数前,应加上如下语句:% x: A0 x& X! y& u
      registerbgidriver(EGAVGA-driver);
    5 k2 ^9 D% \. Y; X+ x/ ?& Q2 @2 o. \) S' D; {
      它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:3 Q! D3 d( g: K; u# B
      registerbgifont(字体文件名);
    ' O3 j3 M" U1 x" k! y% l. h) G
      4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:, }* z3 a  W9 E7 T2 k1 ~- @
    </P>
    1 ?$ b2 c; p  Z( ^: q* C4 k<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>8 @* A. |- k3 C* B
    4 M" u3 V+ b9 q( _. W
    <TR>
    0 D2 P3 p6 a  I% m: u+ O; S<TD>  void InitGra(void)/ e7 q: x  M" e# O6 o+ T. @) W
      {int GD=DETECT,GM;; o7 N: J3 ]. ]0 R1 P  Y
      registerbgidriver(EGAVGA_driver);. Q- j0 b' X5 z1 }/ W
      registerbgifont(triplex_font);4 {8 m# P. d: U1 z) n
      registerbgifont(small_font);
    # w! @% ^4 X+ V0 r) P  registerbgifont(sansserif_font);
    ! q4 e- V: A, Q5 P, x  registerbgifont(gothic_font);% W: P( j: b0 o$ M
      initgraph(&amp;GD,&amp;GM,"");3 d: E& q6 k: W! ?, _
      }</TD></TR></TABLE>' ^' t% Z9 S, t6 F* d  T
    <>  按照以上步骤,就能实现图形程序的独立运行</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-19 23:45 , Processed in 0.454935 second(s), 51 queries .

    回顶部