QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5460|回复: 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++语言提供了下面的函数:
    ( t3 q- X: b- P4 W, w$ z& v  void far initgraph(int far *GD,int far *GM,char *P);( c+ w4 G% k. Z$ s5 x

    * v, P* `+ n: @) `- y  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
    $ @8 n8 L7 T3 ]$ r0 k) U$ z7 {, J7 h! a; }9 g. i
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
    , Q/ v2 l, b+ n! q6 c  void far closegraph(void);
    1 i+ S3 u# j1 J) v
    $ U; v/ d1 r! ?+ Y$ \  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:5 w- p9 A/ K! a
    4 _1 k# i- a, E
      1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
    " Y( R0 c+ O" _+ h0 |  C:\TC&gt;BGIOBJ EGAVGA
    % J  v, ^* H! F; C
    : B7 e; H* K* T! _: [  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
    " Y7 u. m: F! I0 d9 ?0 m</FONT>
    * y, J: `7 l2 w3 [7 m0 O, ~  J+ N5 \3 W& H; ~% D* |5 @
    0 f! a% g% x9 u6 p( K% v- G% z1 C
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>* w5 B$ E" W; H2 g
    8 U* W# F2 c& X
    <TR>
    * T- Q9 [, Z. |! Y5 W<TD>  C:\TC&gt;BGIOBJ TRIP
    6 V  y9 L" H5 ~: T% P' J  C:\TC&gt;BGIOBJ LITT/ [- `* ~3 n# [! ?6 U: `4 |7 H
      C:\TC&gt;BGIOBJ SANS" ]0 A4 R, W% ^$ Z5 v' r4 }
      C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>7 Z/ d# F- Y# h; N# z
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:6 o/ \9 c. W8 W# l, S
    </P>
    * N+ K5 {# I. c( i) I6 |, Z2 c<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    / U0 o5 a  j4 j8 X0 V( n! j
    ) v1 B/ `; |1 N8 t9 S( U<TR>
    6 j! c3 l6 |" H; H4 w# g3 V<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
    7 \9 s8 _3 v- N/ b: U: [5 M  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
    ' j3 B( q& w3 x7 I: y$ S! H  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
    . R- L( w# z+ C  T# V  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS+ N, J( Z, r% s( a. U3 O
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>) |1 [. p  c, W0 Y/ y5 u  J
    <>  也可以使用TLIB、PRJ程序代替TLINK。
    # k5 c2 U7 R& b" q
    ; T: ]( S9 G: q  3.在程序中调用initgraph()函数前,应加上如下语句:$ U7 R. P* G' T7 T( R
      registerbgidriver(EGAVGA-driver);) B6 }0 \$ n0 L8 e" }$ x
    + ?, `& ]2 O) {3 l' K
      它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:- ^+ h4 [, S) R8 ^- G5 Y
      registerbgifont(字体文件名);
    - k0 @7 m' `3 a$ o) b6 U9 l/ v. N0 h% C& m, D0 e
      4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
    : _6 c+ m( R" {3 m3 `5 h8 V7 z</P>7 Y- F" G' M" N
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    ) k( p( v9 m9 M( q( E* [6 P3 o0 I! V3 E* G/ `7 M  v7 Y+ o
    <TR>) X' |& y( C: r/ ]5 C: Z
    <TD>  void InitGra(void)$ C, m4 |' A2 ^! d( o, ]! M
      {int GD=DETECT,GM;
    % H# U, C4 Y+ D: s4 _  d  registerbgidriver(EGAVGA_driver);
    9 |; U: q- L; ^5 u' r8 h  registerbgifont(triplex_font);9 h+ |) o# I1 w) N: Q$ I9 o
      registerbgifont(small_font);
    ! z  T9 ~5 H' o- z  registerbgifont(sansserif_font);
    2 _- _% A9 P  B* `  registerbgifont(gothic_font);7 F* g+ p: C9 h; ]  q, |; }
      initgraph(&amp;GD,&amp;GM,"");
    2 n7 a1 a9 Q6 }) K! u4 e  }</TD></TR></TABLE>
    " U& U  ?3 d+ P( O  J3 j6 G<>  按照以上步骤,就能实现图形程序的独立运行</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-17 01:20 , Processed in 0.353041 second(s), 51 queries .

    回顶部