QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5459|回复: 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++语言提供了下面的函数:
    ; {5 [/ g: l' W! F+ V' F% Z8 E  void far initgraph(int far *GD,int far *GM,char *P);; L2 B! i! q# U; A9 @
      j- M# u. ~! G0 W0 N. ]! ]9 `
      其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
    + x6 H! Z: t* _9 M, I, |
    " S: k( `8 \; P) t; V& i  t0 T/ w3 R  图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
    3 q" m- m( @, R. C7 r- `( b  void far closegraph(void);, r$ u# X' U1 i

    4 I1 J9 Z/ U- @  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
    . W' x/ ^0 d9 N0 ^' m. Z- }
    8 O' e* b- X# w! S  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
    , j+ p/ d- W, w! Z2 D  C:\TC&gt;BGIOBJ EGAVGA1 e5 P6 V1 b0 X5 q! d/ k1 }7 @) G

    ! c; Q- L* B; l8 g& d* i  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:: w% t) Q8 X0 H  a$ ^$ C
    </FONT>' ?% a" E/ O, T$ y( v9 y9 i

    2 K  H. ?2 ]& |' D) H6 y: l% Y
    1 r( z+ B; E( V% A+ A- O, D<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>5 w5 N+ z- O9 Z/ d
    * B9 y: b% V+ \1 q0 F
    <TR>$ ]5 |( H7 s; N; M1 J3 \
    <TD>  C:\TC&gt;BGIOBJ TRIP
    ) U8 \6 Y) M8 T" V  C:\TC&gt;BGIOBJ LITT" [, ]8 n5 ^' k3 [0 u7 n
      C:\TC&gt;BGIOBJ SANS
    1 F0 M3 N6 Q' R) h. n; X9 j$ c. [  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>
    , M2 ^1 ~3 Z' V* @6 U<>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:+ e! t. D5 |+ w
    </P>. h1 z1 @1 i: B4 g0 _
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    5 A& w! i- t/ u; i" Q& D1 M3 q$ `' P4 }
    <TR>7 M, e& b( c) |* L% k6 f
    <TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
    ( r; h, w+ b* \  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP' I- }% t5 R+ c% n: L1 X
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
      v" b! |1 Y; j9 }" a( O: T$ X6 r  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS! N; {; L8 B1 {9 C' N2 v
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
    # X, C$ _3 G- ]- Q# f<>  也可以使用TLIB、PRJ程序代替TLINK。" ~: b4 Y# |+ i2 k8 Q4 C1 Z
    & D8 D6 a$ }' x. z/ D% m* X$ }) X
      3.在程序中调用initgraph()函数前,应加上如下语句:9 t) V; y6 x2 H3 N0 @' \1 ^% _3 p' ]
      registerbgidriver(EGAVGA-driver);
    ; J" E9 k4 m# h( F; F' v
    . M% @- b& h6 R  k; R7 M  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
    - A! C. T: [9 \0 ]  registerbgifont(字体文件名);
    5 ^3 G* H  H1 Z
    / F& _% b- `3 Q  C$ ]8 c+ G, u2 D  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:& A( n: {! J. ]2 e. b6 |
    </P>  M8 \! a9 c  F! A) }# q! V
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    / K0 ]! b  `. I5 u
    % k9 S# W8 t( a# |* P7 q) L<TR>
    # }% C, f  `/ N<TD>  void InitGra(void)
    2 ^" q" }. b2 s  q3 n  {int GD=DETECT,GM;
    1 W' ]. t) F  s+ v  registerbgidriver(EGAVGA_driver);
    # C! d3 {0 \. b2 u' R  registerbgifont(triplex_font);
    & j. T  ]6 w4 {! c4 C2 @, D  registerbgifont(small_font);0 ]# Z1 B! S, C* \  O' Z8 P
      registerbgifont(sansserif_font);
    + H$ }5 F( f% j3 a* c/ y. t  registerbgifont(gothic_font);9 R! \9 H% |( g# x
      initgraph(&amp;GD,&amp;GM,"");) E$ H$ d  v) A
      }</TD></TR></TABLE>$ F$ J9 k' h' Q7 s) b
    <>  按照以上步骤,就能实现图形程序的独立运行</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-16 21:57 , Processed in 0.324073 second(s), 51 queries .

    回顶部