QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5468|回复: 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++语言提供了下面的函数:
    : C+ y- P/ V  C, z; U8 U7 F  void far initgraph(int far *GD,int far *GM,char *P);
    ; w6 |; I0 f, [! S& Y' Z
    " I/ t4 {( f& {+ J) m' k, h9 X  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
    5 C3 R+ r) C( U/ o7 m7 S" A# ~
    - C0 F4 c& P) C- h  图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
    6 y9 [( |% u# [  void far closegraph(void);
    6 D; Y" r" K& C1 }! Z2 b- j) t! ?
      许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:& h% P4 y7 t) a+ L

    1 }  h8 W$ b! Z4 b+ P  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
    / P$ ~- o) J( P* z- c) O: R  C:\TC&gt;BGIOBJ EGAVGA
    ( N' U; g; ?1 l7 {0 W' X) ~' V" ^2 r. s0 N- D; W) F
      按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:; N' y3 a$ r; k  M# X
    </FONT>
    & f" x# v( w0 c: V! K, j9 x  }( g- ?& Z3 h/ \6 l* K

    5 A/ O2 M1 Y" Y<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>1 T% P6 n# S3 L3 p4 j

    ! L& |9 n& y6 o: s: b. |( B<TR>1 C2 m: f4 c, a! U& _$ O
    <TD>  C:\TC&gt;BGIOBJ TRIP
    2 B# u- u( N. G; X% n' v: _  C:\TC&gt;BGIOBJ LITT' ?1 u& O! V1 _7 ]" g
      C:\TC&gt;BGIOBJ SANS# Y8 ]; B3 M1 X* ]: g/ K
      C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>6 N" ~7 K+ ]7 t' j
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
    ) E' k5 i- E6 k" c9 _3 ~; B5 B</P>
    ' y9 I  ~$ u( \4 }- \- `<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>- U# M$ V( e- I

    " a9 E: b6 {3 A+ X& C<TR>
    + X$ a& ?/ ?4 k) {/ Y<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA* M7 t! U) V" u" ?+ e* K1 C* H
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP9 a# d( u. P3 W
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT7 U0 m9 x: u) e7 i
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS! E$ _4 J5 e: M
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>$ {' `( F1 h" O2 }4 D
    <>  也可以使用TLIB、PRJ程序代替TLINK。
    6 C  G/ U: M0 M4 N* h7 t
    1 }, L% ~! S. F# z7 X: @- t  3.在程序中调用initgraph()函数前,应加上如下语句:
    5 S. H. K* B: f& O1 `* R( l3 Q  registerbgidriver(EGAVGA-driver);
    $ }% I& C# [" d4 D0 I2 _( ^$ j6 `9 |3 H4 U/ c
      它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:1 }! |' X. M9 ^( K
      registerbgifont(字体文件名);
    ) B  ^) O) p, X$ ^7 O9 g) s- ~4 r9 r+ n% O) \; m! |0 B( P  u
      4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:2 ^8 p; _6 ]' p/ N6 L
    </P>
    $ C1 k& {0 X& o! e" C) V<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>! E% S3 i* n/ \: {1 g0 R
    1 \$ R; ^) {% I6 J  [  T
    <TR>
    5 `& Z6 e3 d9 I<TD>  void InitGra(void)
    : R- P; J# ^; _6 P7 M4 E  {int GD=DETECT,GM;
    3 \9 m! F; o  H! _7 c9 |  registerbgidriver(EGAVGA_driver);  L  M: h- N3 l8 `! D; }8 F
      registerbgifont(triplex_font);
    & v/ y* D& x7 T, n, v( V  registerbgifont(small_font);
    7 ^- T5 b) J& v' x  registerbgifont(sansserif_font);- c3 e0 G& G* a1 |( t
      registerbgifont(gothic_font);
    7 |% S+ e5 A* b) R& G4 A1 O  initgraph(&amp;GD,&amp;GM,"");2 Q* t4 m" H4 S0 r$ C; u: i4 i* O
      }</TD></TR></TABLE>0 S/ u0 N" c1 T; d! e* ?
    <>  按照以上步骤,就能实现图形程序的独立运行</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 03:26 , Processed in 0.600832 second(s), 51 queries .

    回顶部