QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5512|回复: 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++语言提供了下面的函数:) E& J2 D5 B6 H7 u3 J. C1 \9 T- k
      void far initgraph(int far *GD,int far *GM,char *P);; A) p8 T( E' ~; G
    $ G' R( D% u) l) w: N- P& i/ n
      其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。: b8 S  u  z! g6 r  W" y' y+ H
    ! {, }  `$ Q2 w: Q9 L0 v
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
    ) s$ s6 |( J/ f4 U4 F% u. k8 \& o9 @  void far closegraph(void);# g1 _8 L0 t" ?6 x' J9 j2 F

    * ?% a; _$ l) m1 v1 @) r3 }  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:# X% P2 D/ `8 L# V; h
      i7 P( e7 q# i1 \$ C
      1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
    % `! P0 s9 F7 M( S: Y# s! V  C:\TC&gt;BGIOBJ EGAVGA
    ( e+ v% L0 ?8 z2 ]+ Y3 p9 p9 |$ `3 g" u0 l9 Z1 J, T) _* R
      按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:, j" v/ u5 c0 c/ [
    </FONT>
    * }: P: l0 ^( o& z9 p4 s* p: [" v4 f  d) }+ Z3 u  d& U4 G
    0 {! a" {( B* C$ K4 o
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    9 w, P3 D9 ^1 d6 H9 c) X% o! K. E' {: ~4 a0 |
    <TR>
    4 o- g/ c) I! D* F<TD>  C:\TC&gt;BGIOBJ TRIP
    ) k, l8 X; |6 C+ q! c4 x* b6 a  C:\TC&gt;BGIOBJ LITT) z6 E6 A6 P# t& U9 J+ y. s
      C:\TC&gt;BGIOBJ SANS
    7 s2 ^8 J6 v5 [; {( b; ]  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>
    ' Z% D. b  R3 n1 S6 W<>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:/ Q' }$ h) q$ {- O$ y! s( l
    </P>
    + R) k2 b( v6 M$ ~<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    - M& ]; X! r" T2 E! c% `  ?( `2 j2 w1 N; p1 R) k2 b
    <TR>
    2 R$ p* f  r+ o1 w9 K# ]<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
    & W) a) u) y6 N; v, v  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP2 ^. c) c2 t- a' Q2 b3 }8 W
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT8 j) j3 }8 q$ f: F0 ^: @4 h
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
    9 T1 }% u. C# d9 ~4 a( Y& x  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>& h* v# K6 D/ D+ ^
    <>  也可以使用TLIB、PRJ程序代替TLINK。
    7 ^0 ]/ h2 q. T6 }* U
    0 T4 ^! h, d% ?6 X7 g9 I% g  3.在程序中调用initgraph()函数前,应加上如下语句:3 j( I) `0 o. S6 r8 K
      registerbgidriver(EGAVGA-driver);
    - [+ L2 H' P# \) F' ]$ R/ z' [5 @+ N$ X" T/ i$ G
      它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:. p1 H/ ?* o; F/ D
      registerbgifont(字体文件名);, w/ g6 i* `$ a- T6 T4 F/ F

    4 G/ m' O( v2 i7 C  j  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
    0 e3 r2 S+ [& M3 t: {% L( z</P>
    . M7 }3 x3 u$ b8 L6 e<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    & Y* n! Z9 A/ Q
    7 f  x+ b# G3 ~$ F* Z<TR>
    % s+ E  E$ E; P<TD>  void InitGra(void)6 x9 K' o. j+ i+ u9 |0 N
      {int GD=DETECT,GM;0 v# G% n2 A- y/ B
      registerbgidriver(EGAVGA_driver);
    ) p8 H9 _2 [- u  registerbgifont(triplex_font);# D& K* N/ \; _) ?! c. m0 R% V; z' V
      registerbgifont(small_font);) c9 c5 ?- f" m( \# g) r% t  j
      registerbgifont(sansserif_font);5 W0 n6 r3 I5 f+ T9 d
      registerbgifont(gothic_font);
    : B1 O" f' N4 E" j" ~" O7 ?  initgraph(&amp;GD,&amp;GM,"");
    : M0 ~2 X" w, K: N  }</TD></TR></TABLE>3 c& n& v* g8 V, K8 t9 j8 ]& @
    <>  按照以上步骤,就能实现图形程序的独立运行</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-9-3 03:36 , Processed in 0.330753 second(s), 50 queries .

    回顶部