QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5514|回复: 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++语言提供了下面的函数:
    ) L! ~9 z4 H* x, l0 A1 f  void far initgraph(int far *GD,int far *GM,char *P);
    " K: A; Z- r+ N/ y
    * R4 Y/ I# C1 f" W( d  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
    3 ?: e# q* G0 j9 p$ w. g6 W7 y
      x1 o' ~. H- x+ o3 j  B" F' ]  图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:0 e# n% p- d# R$ t3 `% a
      void far closegraph(void);
    ' c( q) s/ A( A  J5 h2 F6 U+ k) S( s3 ?: g4 t$ l# n
      许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
    9 z0 ~! G; q- Y6 O% C$ V
    ; B9 F# Q3 v2 a  M  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:& E/ Z4 Q5 `! d& e
      C:\TC&gt;BGIOBJ EGAVGA
    & S( {' F& }: G7 {6 a) `6 b* F0 M# ]4 L3 x7 ^
      按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
    ! X4 k( W; C$ @& X</FONT>
    * p9 S! W1 u% F8 _4 x  i+ o, R: N0 o% }, a1 M- q! o
    2 u9 `( y  s# i" m$ E. o
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>( K. [$ ^5 I" W

    # O3 E3 ^! X  X# M5 ]2 n5 M6 Y% a1 ^* N7 c<TR>
    / D$ g9 K6 Z2 g2 V0 {( B% l7 J* n2 Z<TD>  C:\TC&gt;BGIOBJ TRIP* G# A& q" B4 c/ \1 g$ O3 y
      C:\TC&gt;BGIOBJ LITT4 W! d2 n: |1 }: V
      C:\TC&gt;BGIOBJ SANS
    # q9 q( K( Q3 n2 e2 ~2 k  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>
      A2 W) x9 ~' Z% l5 n1 }' ]  \4 F<>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
    5 Y+ j, M5 x' P9 X$ u# ]& c</P>
    ! `, T$ m5 P8 W3 f( a- @<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    : E1 z) C$ P/ @( T, W
    1 ?. |# q$ _* L6 a<TR>
    . t% O8 i+ g0 n<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
    . Y' ^0 z1 \% w/ P7 ~  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP3 [, j7 X7 U; d9 }; H
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT) z2 R. E6 z& G& j$ J
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
    % H2 R- E. ]( x# C; i5 N- O  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>- ^  p! {$ [2 W- r/ ?4 O
    <>  也可以使用TLIB、PRJ程序代替TLINK。
    4 I( n" v* @# ?4 K8 X3 X* F" u% ~4 i( m8 D/ m( x% ?
      3.在程序中调用initgraph()函数前,应加上如下语句:
    ; H/ O+ {, ?/ }% q  registerbgidriver(EGAVGA-driver);/ ]; r# |  i6 y- c: ~

    , U6 ^9 X; o) ?0 K  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:  t8 B  h9 M2 [  k! H: u
      registerbgifont(字体文件名);
    % {- {2 t" {$ \5 a, O
    " }. e% x' R$ e+ e9 J  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:( I( {+ _( R$ r! M
    </P>
    4 G; N  p8 s9 q8 J# t: w( @& C<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>- Q- K( U! h5 @3 Y
    6 E* l3 f3 N: |2 T$ C9 L
    <TR>% B% B2 V5 P; k$ m. |( y
    <TD>  void InitGra(void)
      R+ B: r* \, j" m. c  {int GD=DETECT,GM;1 r$ K, @( R' J5 v! J
      registerbgidriver(EGAVGA_driver);$ D8 p/ x" H5 k% h! {
      registerbgifont(triplex_font);
    - `( U/ L& F* H8 |  registerbgifont(small_font);
    - }6 u, m: W4 j  registerbgifont(sansserif_font);
    * D! P7 M4 K( {' B  registerbgifont(gothic_font);
    0 Q; I" Z7 V5 Q3 i) ?. V, ]  initgraph(&amp;GD,&amp;GM,"");
    4 W6 P; E) P7 ~+ U( P  }</TD></TR></TABLE>9 b% n  `* ~" D
    <>  按照以上步骤,就能实现图形程序的独立运行</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 06:41 , Processed in 0.362670 second(s), 51 queries .

    回顶部