QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5486|回复: 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++语言提供了下面的函数:9 a; l( l4 _% s
      void far initgraph(int far *GD,int far *GM,char *P);
    + R# o$ o/ B. ~# `3 G, A" K; F4 ^
      其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。2 c% e3 q: a# u( q( y2 ]
    % m3 m8 Q9 X' u
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:2 Q: C+ |0 s( ~; r! H; l
      void far closegraph(void);& ~* W' p7 F; C! W
    ) r" M  l1 i) \
      许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:" V- a' _, `. `5 c$ ^' h7 M
    7 K3 Y" N: g: k, L' [
      1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:. D* E* Y1 S4 [4 U" O
      C:\TC&gt;BGIOBJ EGAVGA8 S9 y) ?' b$ U: N
    ! {8 n  `2 t7 O4 Z3 L
      按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:! U; g' B: D, d8 }( Q+ N; S$ p
    </FONT>8 k5 r3 L' X8 u+ I

    % b* d- V5 t+ G3 I$ W- a! i) H6 a* y1 J
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>% D( }$ L9 N6 C9 i
    : W! G2 p) ~+ k9 ?
    <TR>0 i7 w7 G) H% c; D* T4 u! ~
    <TD>  C:\TC&gt;BGIOBJ TRIP
    * V! m2 j; j! t5 ?) o: i  C:\TC&gt;BGIOBJ LITT9 h' L) b, h* @. ?+ i9 I" K; c
      C:\TC&gt;BGIOBJ SANS
    : ]/ G  y: @8 I/ R! m, j  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>
    . U9 E8 A7 A9 p$ D! W<>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:( u3 R8 q4 k8 I7 |6 L( P
    </P>: D2 |+ @  Z5 a7 z  b; @' D
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>  _' J$ Q, i: o  T1 ]& U% A
    & @- S5 m  B: l7 {' H1 V, R- s
    <TR>. _) a( j( ^5 N5 H  [8 w/ ]5 w1 |) G
    <TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA) V- y1 a) i7 s' p8 f
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
    * d# V' D, E! \( E" ]  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
    9 Y6 J& q# K, b: \0 t  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS4 s. I0 `, w# z0 t
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
    7 N& _- r2 M' p# B3 v<>  也可以使用TLIB、PRJ程序代替TLINK。3 q' Q( k6 ^; G# w- k
    % \1 }* c% O- t% |( y6 D0 a
      3.在程序中调用initgraph()函数前,应加上如下语句:
    7 I" x- q8 I2 b& h9 N, C  registerbgidriver(EGAVGA-driver);& I  n! f- O) W' k; `

    / f9 L4 z" O5 D4 _7 J/ D% o  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
    8 E7 Y5 P! H% i- p  registerbgifont(字体文件名);
    : V4 h! C3 d, n. E) U/ n
    - C& v" j0 }# f& F9 J  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:9 C4 `' ~. v" ~- Q0 N1 g
    </P>' \  V" z# F3 I( A8 B
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    3 l6 j9 l  H9 T. B3 S
    7 p" w# c& I" w2 ~9 ?) S<TR>
    % }: M8 F9 D+ L$ k2 ]5 l8 C1 C- Y<TD>  void InitGra(void)0 J- v  w/ C4 K" ]0 ]
      {int GD=DETECT,GM;
    $ }9 ~. ?/ S) d  registerbgidriver(EGAVGA_driver);" l1 a( ?! l' p( X
      registerbgifont(triplex_font);+ D/ }( l, y+ s9 x1 M5 H
      registerbgifont(small_font);
    / O" K( Y$ }/ R2 q' m+ j- P  registerbgifont(sansserif_font);
    8 {! z- z' u3 z  registerbgifont(gothic_font);
    $ K0 K! f! k. s9 m; ?$ u: y  initgraph(&amp;GD,&amp;GM,"");' k: E! J0 t. Q% D! N/ _
      }</TD></TR></TABLE># Y8 i& W1 l, R$ g& a6 c9 S
    <>  按照以上步骤,就能实现图形程序的独立运行</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-6-3 11:25 , Processed in 0.412609 second(s), 51 queries .

    回顶部