QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5471|回复: 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++语言提供了下面的函数:
    * X1 p8 i* L( J8 Y+ q3 |/ @  void far initgraph(int far *GD,int far *GM,char *P);
    " V5 n4 J; h$ q  V% T/ |) `/ _/ c' W2 X( U" u% L" T0 z+ d3 m
      其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
    ; ^; g4 g0 |8 h9 n6 k; h" H5 Y+ Y$ }8 T+ I  D1 K
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:$ L+ k  t6 \7 ^) h4 U" C
      void far closegraph(void);
    & C" S8 b" g( V3 n- \- f+ y& b+ D; \9 M8 @6 _* E% |
      许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
    ! ]# C4 F* z7 m) f! O- q! Z5 m9 t& ~5 r0 {, X
      1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
    7 q& B5 i2 R: E0 Q! ^8 I5 I  C:\TC&gt;BGIOBJ EGAVGA1 U+ l: S- d! m5 y! \6 A5 N
    3 o+ Y. ~6 h- @# A& z+ ~
      按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:4 B+ X% O: H% }$ Y) w
    </FONT>
    - `# X- a$ I8 |% A6 c0 X2 y
      b/ R4 [, ~: c' B5 q, ]! S8 e1 p
    3 p$ r: p% J, o<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>8 U  Y. u# C+ t7 D- H% E! Q" i

    ; T/ X9 n6 F( P6 p' w" ?/ D2 {<TR>! V7 M, s; E3 K& e6 m' M
    <TD>  C:\TC&gt;BGIOBJ TRIP( b0 z& N; E' K5 p7 Q
      C:\TC&gt;BGIOBJ LITT
    1 M. f/ `& M9 h" P/ y8 E  C:\TC&gt;BGIOBJ SANS
    " N) k7 X& R" R; E  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>
    . I  `0 K( t7 X5 Q! o& s6 ~1 [<>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:2 C) o: ]* r0 m3 t5 @: [
    </P>
    - s! w, q0 y5 c; a/ q; S0 T<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    7 A$ Y- A' n0 C- N- R+ ^+ S+ g
    . {" i. ]! D( `5 P9 Z6 h/ `+ b3 H<TR>
    8 Z  l3 B/ o5 l2 y& }<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
    7 C% g* J& D  T; [- ~/ }' a# ]! S  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
    % e9 S* G- ^! x7 X  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
    7 ?3 k1 K# C$ ~" P- ?3 x* L; A  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
    & h: h8 T. Z4 k4 l$ W/ p6 J) ^  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
    ; ]0 Y( E/ z! F; p% y: p<>  也可以使用TLIB、PRJ程序代替TLINK。% g1 {% u  a/ c" G2 y1 k9 m/ f
    + s. h+ W' b- [3 y- J5 }) K( S% W
      3.在程序中调用initgraph()函数前,应加上如下语句:
    + B( H: Q* b% B) V5 B2 b  registerbgidriver(EGAVGA-driver);
    + L0 c( O% V5 c/ P+ ]# o9 u9 Q: K- ^* r* q$ E* r
      它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:; [  t* L: R2 I. m& l/ O
      registerbgifont(字体文件名);
    ) @' W7 C+ F5 M! u
    5 H; `3 }* Z) j, K) G  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
    0 E$ b! f5 {2 n8 q</P>% ~$ g. |& x. g
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>( J+ s4 b+ b! q: x6 F2 Z/ ]  \
    & A5 Q1 |) \1 d% x; c
    <TR>
    1 w% e2 Y' r9 \: q8 j6 j. [<TD>  void InitGra(void)
    ( R8 P0 x9 [% I" g$ O5 n  {int GD=DETECT,GM;
    : K9 A1 Q6 C2 m" A" t- P' A% c& N/ O* U  registerbgidriver(EGAVGA_driver);( L# A3 _+ K" d/ U) S7 \
      registerbgifont(triplex_font);8 M6 q! m2 z6 s0 p0 |
      registerbgifont(small_font);
    3 ?$ V' [2 x% q5 u  registerbgifont(sansserif_font);
    & Y/ Y8 z8 F2 ?4 A5 |5 a1 N  registerbgifont(gothic_font);3 Q0 p0 z- v* e  H  D6 C1 x
      initgraph(&amp;GD,&amp;GM,"");
    : s. C/ F: x; m7 X0 U1 ]- F  }</TD></TR></TABLE>
    ! c. P4 d( K% a& q- b' i2 h' ?<>  按照以上步骤,就能实现图形程序的独立运行</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 12:53 , Processed in 0.430932 second(s), 51 queries .

    回顶部