QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5493|回复: 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++语言提供了下面的函数:' [6 O& p" m) M, U) s
      void far initgraph(int far *GD,int far *GM,char *P);
    / Y1 i. O0 w2 h4 a% ?/ R# a1 J' k7 `$ X/ N! a. U6 b
      其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。' {/ z0 X' x4 X: l7 K$ a' \7 W
    ' G3 \# B. C2 P/ A# c
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
    8 R5 F) c( U4 F: p! l# w  void far closegraph(void);
    ) B0 x0 S  ~# a& P  {& d8 y6 K: n3 U! Q( K+ C0 g( U
      许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
    * M* T: B) O1 O4 z: P- n/ d( P0 j" S. x; d1 a
      1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:! p3 x; p$ E8 {; O% D% @
      C:\TC&gt;BGIOBJ EGAVGA8 [; {  U5 V1 ~

    8 }  ~# g- W# A: \3 r  Z2 v  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
    + M: z, B) m' a1 l, `</FONT>
    4 o$ A5 S! z1 N! T3 c% N
    9 e# \+ n0 B% W& @; H
    / I1 B0 H' K. c; [, c<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>  k# Q' W4 m, V7 M/ u' [

    ( g" Q4 |' h+ ~' J4 w7 [" J' e<TR># h# D1 F  u  a7 a
    <TD>  C:\TC&gt;BGIOBJ TRIP
    0 M, r1 \" Q3 |3 @2 y  C:\TC&gt;BGIOBJ LITT. W4 Q6 Q4 @1 b9 h
      C:\TC&gt;BGIOBJ SANS
    * Z- q1 A( C5 a1 n7 z5 W  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>0 E, K+ _7 V7 v  A: S
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:* n' k" u6 ?. c- v& t
    </P>
    4 y8 R! J( V( u) J2 i<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    0 u3 {0 v4 h$ t& T: ]8 l4 @$ V1 K' n5 d! ?
    <TR>
    2 N& I3 D- J! W& j/ [; R' [; m<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA+ P7 A8 T5 a5 {( v5 k# K+ h6 K
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP4 u1 H' O9 z1 }
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
    4 o9 L' |; D- o* K  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
    / t2 {! ^: E3 f$ B  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
    2 [0 Q+ A! g' r<>  也可以使用TLIB、PRJ程序代替TLINK。9 F% y6 `1 C" P
    # g4 Q* K* Y, A4 W6 L$ M6 u
      3.在程序中调用initgraph()函数前,应加上如下语句:. ~. Q6 x+ U8 ?0 u
      registerbgidriver(EGAVGA-driver);" ]6 A( C  e+ J0 Q1 e$ C9 k/ t6 }
    # H8 U/ x$ D- v  M( @
      它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:- b& V* ]0 E- }
      registerbgifont(字体文件名);0 j" N7 Z) C2 E) e2 h4 a
    ) w$ }/ r! Y: \5 ~
      4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
    ) L  M0 F# ~; Q</P>
    4 C  y/ ?2 a2 D& ^# r' n8 R2 k0 r<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>3 ?3 _; X' T2 d. F8 K
    ; U/ D) n9 [: \& Z
    <TR>8 r7 j9 P% ]* r  U- ~2 H% A$ B
    <TD>  void InitGra(void)
    7 ^( \) ^, }- p/ W) ^" W' h' t  {int GD=DETECT,GM;( u$ G$ g+ B2 n% q9 K
      registerbgidriver(EGAVGA_driver);8 i( h; Q/ @5 F* Z0 J+ ?
      registerbgifont(triplex_font);
    , E0 F  v& m4 L+ u( f  registerbgifont(small_font);4 f4 x; ]* w: @  I' q4 z
      registerbgifont(sansserif_font);
    , O0 L0 h& e( x0 u; p$ U/ x2 v2 _$ t  registerbgifont(gothic_font);
    8 G# w1 J/ w  ]5 B  initgraph(&amp;GD,&amp;GM,"");9 c; J- @* A! Q+ l
      }</TD></TR></TABLE>: @/ O6 R3 r" |2 O+ H2 F
    <>  按照以上步骤,就能实现图形程序的独立运行</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-7-18 16:51 , Processed in 0.435175 second(s), 50 queries .

    回顶部