QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5466|回复: 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++语言提供了下面的函数:% i9 k5 L; Q0 Y
      void far initgraph(int far *GD,int far *GM,char *P);' t+ G, a) |' o) B7 M" h" |+ a

    ( z( {% _4 w9 @+ K. @  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。0 g0 K7 j( t) v, e- l3 T4 a" ^7 v
    0 x! G3 j7 q" ]+ u" Y
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:' J6 I$ Z6 A0 J2 H
      void far closegraph(void);
    , Z! E: H4 Z& h
    - m) Q. W, l/ v, @7 h& A/ h" Z  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
    4 c1 P8 ?& G9 q# t3 Z% f4 p
    ) n2 o8 j. u' G" X3 q- e# A( ]  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:  B% e1 H4 `( e6 _
      C:\TC&gt;BGIOBJ EGAVGA
    + a" _0 }) [* ?) X/ H$ E- ?6 s
    ! w$ C6 E9 x  o% G0 V  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
      t! j1 }# I5 d+ w: _( C</FONT>
    : S- V9 E: j: R
    : a4 }- Y$ f! Y* ?; F6 y  c- n5 d4 U+ I; O% n* q% {: o  F
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>: w0 t9 q* u7 x
    : s6 K" u' b: F+ W0 P
    <TR>
    6 i9 ]4 @, z1 Y4 f3 {' u<TD>  C:\TC&gt;BGIOBJ TRIP
    - X. Q  s3 o4 v& Z9 v  C:\TC&gt;BGIOBJ LITT
    0 I  g' U# n; @% i3 r- r& J  C:\TC&gt;BGIOBJ SANS
    ! A2 e& G; S: p. x, W3 M/ u  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>$ S" q! g. q) v" \, f, N
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:! e" y0 _6 E5 Z& h
    </P>' S+ L# R, |$ Y0 q$ J
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>$ J" r! c0 ~/ X! z' s6 W

    " E% \  y& {* Z2 E, _: e# M<TR>
    8 W3 J9 ?# R8 J$ ?6 x<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
    , [* \' W* n5 @  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
      x: H- e6 ?* w' g' }  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
    , N3 Q  y, M8 C* d. E  i  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
    / `0 ~  c5 S, I& D! O, W* a  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>9 \. D2 H" h/ C+ n0 ]
    <>  也可以使用TLIB、PRJ程序代替TLINK。5 g1 `; H: X0 ]6 q' }
    6 N% F+ i! S7 v  G  {$ t# p
      3.在程序中调用initgraph()函数前,应加上如下语句:4 E. }3 j, l' o0 y
      registerbgidriver(EGAVGA-driver);# r  U# a# {  }8 L, W

    - j: w1 S* v+ g7 q0 y2 A& {  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
    4 W$ O/ o0 E0 J7 q8 y/ |# v% @  registerbgifont(字体文件名);
    ( E3 ?$ n% Z$ T& u+ V% y$ R% K% d8 W) ?9 v; ]
      4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:, f9 X  }# j% Q7 r! w
    </P>4 k5 f7 h/ \: N! k
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    ; k' f% i7 g+ ]/ q' S6 U
    ; a2 `6 p- U, y; S# e<TR>+ O  p- A$ i6 e
    <TD>  void InitGra(void)8 H$ d( t) H6 B$ o1 [' Q
      {int GD=DETECT,GM;
    - ~/ z$ l% L2 O2 Y  registerbgidriver(EGAVGA_driver);
    2 L+ t, d5 f7 W. J  J$ P% h. T  registerbgifont(triplex_font);' _9 B* {' B( j" R* T/ M2 B- x
      registerbgifont(small_font);. `2 Z7 t2 |6 h+ [7 q) I- X5 q% d
      registerbgifont(sansserif_font);4 \% T" P4 j+ @: F+ e4 y3 z
      registerbgifont(gothic_font);
    $ t! h1 j5 f5 k- p( n  initgraph(&amp;GD,&amp;GM,"");  |/ o# L+ \0 R% j% I/ [7 d5 A$ S
      }</TD></TR></TABLE>! o7 U. ]! T/ }/ V  \+ m8 U
    <>  按照以上步骤,就能实现图形程序的独立运行</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 22:10 , Processed in 0.970030 second(s), 51 queries .

    回顶部