QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5497|回复: 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++语言提供了下面的函数:: P5 M  t) g! @" d- B. M+ z
      void far initgraph(int far *GD,int far *GM,char *P);
    / X3 B" J1 @- s0 J
    2 W8 ~' L$ d  }! p  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。4 E. N4 H. }4 q- K

    . ~2 k. x$ J% j5 }" e6 q) |  图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
    9 G# o( o7 T" d  f' p5 v1 n2 e; d  void far closegraph(void);3 R1 ^4 |. b% O" B  I
    , X0 o. M' d& i. w
      许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
      X# F  p% B. v% ?5 l7 ~
    ) @7 `& g" _8 E  N% j+ ]' M  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
    ! D1 B. s# J0 H) K1 Y6 ~  c  C:\TC&gt;BGIOBJ EGAVGA
    6 Z3 O$ a, A# M/ e& M& [2 ~" Q+ z
    : u" Z; c, L, D8 S  h; @  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
    " b$ F3 {: \: m: M</FONT>' ]& N% \7 U' x- c
    7 Q8 D! E' M( a$ e6 q3 h
    7 ?. t4 N" W$ G( c& W- N, T5 p
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    2 _9 g# |0 S- Y# W5 f! M; N0 d  S4 ^
    <TR>/ P) r% E$ M# }8 K; R" d$ T
    <TD>  C:\TC&gt;BGIOBJ TRIP7 d, s% L- J$ Z1 R
      C:\TC&gt;BGIOBJ LITT* e$ B. p* w' [# j# _, N7 A
      C:\TC&gt;BGIOBJ SANS
    " f/ q3 p* q( C( ^+ @  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>
    ; P/ |% a2 S, }8 b) h<>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
    9 S0 {. k9 g' y: f3 `. `</P>- b4 d( V9 x: _# c( _. [
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>$ k3 J, b$ W9 K! `
    & e: X2 T) w8 M( y# h7 ~6 R
    <TR>
    , X- I+ n4 N$ D! B8 G" x  \5 r<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA- ~: b! k( Z0 D- W3 k, b7 V5 M
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP8 k1 f# e/ x. T$ E' Y  U& A. E3 R9 L
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT7 g  k6 F( g4 X$ r; V" D" i
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS; C, I8 ~/ L! y+ A, _
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>1 E# O$ Q, Q3 F! P
    <>  也可以使用TLIB、PRJ程序代替TLINK。
    ) n% Q# K$ M( w7 R' F! C& p; H  t
    8 s& l- c% i+ E! r, s  3.在程序中调用initgraph()函数前,应加上如下语句:
      G8 o( `% W; ^" P  D1 X- E  registerbgidriver(EGAVGA-driver);
    $ Z2 J' Q4 w8 \( H/ Z' t5 z
    $ l* n4 t0 g) c5 G5 [$ d  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:! f1 T% V  J- ~  Z! }+ P
      registerbgifont(字体文件名);
    ' V' c; W' C* c3 B) {/ D* U0 O6 _! r& s3 u, ^
      4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:0 U, \) A4 X  A+ z* i7 O+ l
    </P>+ d5 c5 g% g2 ]" H" K2 |
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    # d& x) V( L3 q' H: }9 u* x  L, O0 V1 U* W6 K. ~: n- \5 i4 M! {
    <TR>9 G9 X; K# D8 o- J- A9 ?+ B  O
    <TD>  void InitGra(void). r. p$ {9 e: t2 ?: y8 O+ K- _. z
      {int GD=DETECT,GM;
    7 s% u: k" K+ C( C$ `9 Q9 m  registerbgidriver(EGAVGA_driver);" W8 v5 z" z& @1 W, N9 n
      registerbgifont(triplex_font);
    $ D( ~/ D7 W9 d/ @, S  registerbgifont(small_font);, y8 [' j# ]1 r5 [1 _
      registerbgifont(sansserif_font);
    # I% K7 o* @9 Y% Y  registerbgifont(gothic_font);
    9 j% q; ^; v( i3 Z4 z6 A$ x  initgraph(&amp;GD,&amp;GM,"");( l" Q: O( _% Z6 R
      }</TD></TR></TABLE>
    6 g: Z/ J. j4 G' f+ u, o. [: f<>  按照以上步骤,就能实现图形程序的独立运行</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-7-19 14:10 , Processed in 0.725777 second(s), 51 queries .

    回顶部