QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5511|回复: 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++语言提供了下面的函数:" ?5 P4 L2 r, m: N2 F# Y6 U. ^" V
      void far initgraph(int far *GD,int far *GM,char *P);
    8 A4 Z: t  G, h4 @' f. B/ V/ J1 P5 z0 q- z$ G8 S  A3 s) z$ ^1 w
      其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
    ! F8 v/ e6 L5 X' D$ R* _) E6 t- x4 o9 ^4 Y+ n& |9 k
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:" \( w% |1 {+ k) _# u+ a
      void far closegraph(void);
    / T  U3 O+ G1 `/ q/ A
    * n; r6 |& r4 Y  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
      R. K# {6 W" C+ _- e: w1 I* K5 N( F4 j' i
      1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:" G4 a5 Y) L  b( b1 y+ M
      C:\TC&gt;BGIOBJ EGAVGA
    6 Q3 m2 q$ p  t& S; H" I( D" H* g- U* X( Y& L
      按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
    + ]  \" H1 S3 S</FONT>
    1 T9 `- {7 x. R
    . k1 R# @% Q$ v$ _' s; S% \6 @) F1 g8 h6 l1 [& v- f) h- @2 H
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    * v! r4 p9 n  d2 I; a' x( u6 E/ I4 W; ~$ i3 j
    <TR>
    ) A4 Q5 h: g+ `0 T( O* o4 Q4 R# c<TD>  C:\TC&gt;BGIOBJ TRIP
    " F) e$ P6 G2 S2 S: G, j  C:\TC&gt;BGIOBJ LITT5 N+ R2 ~, o$ y
      C:\TC&gt;BGIOBJ SANS! {- O7 X1 D7 S0 Q6 p( s
      C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>
    6 X; W0 H/ b2 \. T* T. [<>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
    2 E& {8 O8 A0 {2 T</P>) t0 ]) m+ I6 J0 N* j- n/ x
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>5 n5 x2 w7 {* P  W! ~
    ' ?# N9 d& J7 F
    <TR>4 }4 f/ _! S" L, o4 p3 n; Q9 b
    <TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
    $ }8 D" l5 H( u! v  E6 i  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
    # X7 e& I9 j8 M, w  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
    4 ~. ?4 p; w! j- \& |  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
    ' M  `% G% d" @# T5 k0 g- t  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
    3 d7 [1 t, |; S  W: W, [: \, I9 E<>  也可以使用TLIB、PRJ程序代替TLINK。9 c( H- x' h# T. _1 U

    : |- W( ~: O" W4 _/ I7 u  3.在程序中调用initgraph()函数前,应加上如下语句:
    , a' K. R4 }# P: R  registerbgidriver(EGAVGA-driver);
    3 m! D4 L6 r$ I1 L
    % f" [+ @+ z, q  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:$ N8 @0 |) p# L. B2 X
      registerbgifont(字体文件名);& v) x* l' E( s' g1 C

    $ V/ _& S+ o" U& G  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
    % J) ~- Q# Y1 P* r1 d6 `, e</P>
    $ s' P: o6 d/ r' ~% `$ h1 G- L<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>/ K- M3 H2 K# D7 q
    1 |1 n0 M( P9 a; M% m) Z
    <TR>
    8 s! A4 E4 `! f  j( q0 L8 L8 b<TD>  void InitGra(void)
    0 o! M3 F( v! D( ?6 n* f  {int GD=DETECT,GM;7 Z4 u& y* H) i% M( k
      registerbgidriver(EGAVGA_driver);9 {$ n3 I" _5 h) k- o+ O
      registerbgifont(triplex_font);
    : B7 ?, [' t; F$ P  registerbgifont(small_font);
      G+ U0 r. |$ p  registerbgifont(sansserif_font);$ x- {# b" a1 p) r" y
      registerbgifont(gothic_font);
    % {" r. P6 C3 s( y0 k/ V  initgraph(&amp;GD,&amp;GM,"");
    $ B/ ^! M# M1 ^# r1 w  }</TD></TR></TABLE>% t  h3 H1 F/ z9 c1 ?  k1 }6 a% x5 b
    <>  按照以上步骤,就能实现图形程序的独立运行</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 02:32 , Processed in 0.358800 second(s), 51 queries .

    回顶部