QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5470|回复: 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++语言提供了下面的函数:
    ( n) n2 K9 N9 ?2 E- @2 W  void far initgraph(int far *GD,int far *GM,char *P);  l1 d0 m- O! d, X4 J- E  l2 q
    6 B2 z2 |0 \8 F; X
      其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。1 z  s6 p! A: M$ U8 y" i0 p

    6 y+ B* v9 S. G& p9 H  图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
    " c: \" M* P1 g: m  void far closegraph(void);
    ) a5 w% o+ m! @6 `. p/ ~! X9 Y% P) r0 s" a
      许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
    ! Q/ N, q* }! q1 v, Z
    3 v: _$ X. C+ V) a; S+ h  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
    8 \" P& l: V9 M: q* C2 _; h4 h. e/ R6 z  C:\TC&gt;BGIOBJ EGAVGA$ e  b' _- H8 f! K: B/ i, x7 u

    $ y# o. f& j1 I& z% t  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
    3 n, {3 B6 ~* j</FONT>
    8 @) W4 h' }( P: [" I8 a4 r
    9 I- ^" J) }% A- M0 F8 X
    ! c& r1 V& b5 u; S. [<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0># f" O1 }, d* j: C* s& Z
    8 ~) e  n) a) G; E1 o
    <TR>
    " j# L1 s, x" p3 |8 N/ ?' ~; N<TD>  C:\TC&gt;BGIOBJ TRIP9 x$ ?4 h( Q! S: H$ o9 |& W
      C:\TC&gt;BGIOBJ LITT
    * v: K/ {" _6 x1 V- L  C:\TC&gt;BGIOBJ SANS+ Q8 L4 C( z, l  c
      C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>/ J) D$ t2 b$ i& P! t9 W
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:" K8 S- K  O  l2 ~6 \
    </P>! G! v3 F+ q# g6 ?9 L  S' F$ Q/ Q
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>8 N8 O' a0 o1 L, ], S: B( [

    & T6 B3 q! {! h+ `. W5 r3 [<TR>
    4 H5 r* b: u0 |0 p; s1 j2 Q<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA) j! h+ D' L2 @2 _- T: T
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP, p) M' ?7 j& @  B* v
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT$ u9 B; Y$ t/ u6 c( ]
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
    ! e( J4 q+ `% y6 C; d2 z: x9 R  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
    6 R5 R2 i% p+ n8 H<>  也可以使用TLIB、PRJ程序代替TLINK。5 I" K3 b% u6 o

    6 G  `! q: H6 |) r5 O  3.在程序中调用initgraph()函数前,应加上如下语句:
    % t. ?8 ^5 ~! S, w$ O$ w  registerbgidriver(EGAVGA-driver);
    & W# ?+ ?0 g4 _: @  a2 y
    0 L% k$ }/ T. n  y, e  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
    2 G7 w9 e! K% J' D  registerbgifont(字体文件名);
    + d$ K; M, G# n  w2 i7 C8 }
    & f3 F+ {- c3 _( c  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:+ t6 Y! b5 h2 K" R0 S2 g
    </P>+ `! K9 |) n4 e, [8 B" H
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>. E! q5 \' k* u: Y9 I- ^3 D0 v6 Y
    , r" v) \: O8 R" @, `
    <TR>( q$ d- n! H( A. Q4 r; T  Z( n) G
    <TD>  void InitGra(void)
    1 V4 V# R6 @& P! \3 h* u% M  {int GD=DETECT,GM;
    1 p) C  s$ }( s! s. `  registerbgidriver(EGAVGA_driver);
    # s. b9 x% x, v: h  registerbgifont(triplex_font);
    3 [0 q& _4 E5 J% a  \  registerbgifont(small_font);. t* ]9 I( ]% {3 b( `
      registerbgifont(sansserif_font);5 y8 ]; x# u1 b; l( {
      registerbgifont(gothic_font);
    " r; H' r2 V4 x" V% S9 O' m. y  initgraph(&amp;GD,&amp;GM,"");
    . L( M0 n7 Z5 \  }</TD></TR></TABLE>
    . m0 _$ v: G- U, S. Z<>  按照以上步骤,就能实现图形程序的独立运行</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-21 06:44 , Processed in 1.369917 second(s), 51 queries .

    回顶部