QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5467|回复: 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++语言提供了下面的函数:2 M% ^; |9 ]: @1 J- G
      void far initgraph(int far *GD,int far *GM,char *P);9 g. r% z& m* [, v, G9 k0 e0 ]1 ~
    8 [- s$ K' W# Z: G: _" h4 ?
      其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。7 _; Q* {- c( J  r) Z9 N& M
    2 h4 L- }  e% L, E1 W  z% }
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:, F7 u$ M  {2 f$ c$ z
      void far closegraph(void);
    , p6 \; s- W7 j( E# h) z8 k
    ; n1 |* x9 }$ h1 N  X* x$ I  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
    4 Y! W! ?; I, ]. `% \) ?$ r) j9 S& B& T6 U0 s7 B, Z3 {7 G0 m
      1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
    2 w6 G& [5 ~) {, M3 b/ k  C:\TC&gt;BGIOBJ EGAVGA: v2 s0 {4 Z' I2 _' f/ J" @

    ) C3 `8 y9 k: s( l/ Z' |  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:$ J" J; l+ `, P8 A' J& T5 b
    </FONT>; n* }2 Q8 [) q' j2 A8 x

    ! k) O; c. ?' i5 j0 @! i% k' U2 c  ~9 E4 R, Z/ O6 I1 o
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>! d( v7 h% c6 I0 `, b
    ( z+ F, x6 l: I4 c; B
    <TR>. T0 X& j2 `. ]% _
    <TD>  C:\TC&gt;BGIOBJ TRIP
    - s: E6 ]% Y" Z- R7 c: h  C:\TC&gt;BGIOBJ LITT/ B: u0 @' e7 |8 G. s6 U/ W
      C:\TC&gt;BGIOBJ SANS
    : \  d& ]* ^" [8 d- @  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>$ _! i( G! C7 u6 u: y
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
    . T7 ~( y7 b: {* x5 a</P>
    & h6 W" y4 Q& ~5 F<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    : L5 ]+ r/ l# e3 g( b
    3 N0 p9 A% f) m% m' ~  {( j<TR>
    ( T! N) s  q% ~% o* @+ s<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
    6 M  V  ^5 _( f) ?) m9 m; G. s  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
      |1 ^, T4 w6 ?: x3 x0 i  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT& Y5 _* X8 F* c% L2 T  P
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS) \: X4 e0 [% L4 a. E. T
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
    ( z; g( J" [$ P<>  也可以使用TLIB、PRJ程序代替TLINK。/ f4 R6 M9 E4 i+ T0 Q, W

    ) H) V5 R8 u( S  3.在程序中调用initgraph()函数前,应加上如下语句:
    4 [4 h5 K* S: C% o  registerbgidriver(EGAVGA-driver);
    5 B# R$ T9 P! N' h+ w# x  K2 I4 Z6 Z# U! v5 c& c! L' W. L
      它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:. g  P3 d5 ?4 |8 u& J9 e8 }
      registerbgifont(字体文件名);
    ( L" ?& v# W) w9 g  @* f- Z7 p: S2 ^  B9 V+ a- ]" a
      4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
    - E/ U2 B$ F! `5 k$ p0 ?  N; |</P>5 S4 p5 x7 e8 n
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    9 Z) B& ]% j& U' a! j7 W: z* D/ X# J8 f3 t+ L7 {
    <TR># ]8 b# u6 F3 l- q2 ?5 j
    <TD>  void InitGra(void)
    3 S- @' e  I/ c3 ?/ W/ k  {int GD=DETECT,GM;
    , i6 V3 {# F: o6 H9 ]. Z  registerbgidriver(EGAVGA_driver);
    5 M2 j* A" \- ]! T  registerbgifont(triplex_font);
    + \" u) t9 ]: g# ?9 u9 S  registerbgifont(small_font);
    7 R- _% q, g" d$ v  registerbgifont(sansserif_font);5 K( k6 r2 m8 |) H5 T! A. F
      registerbgifont(gothic_font);
    5 O' G9 q' v% l7 f$ V% {- m" X4 U2 B  initgraph(&amp;GD,&amp;GM,"");' d0 ?* H$ J8 n5 o2 H3 s
      }</TD></TR></TABLE>0 V% t* p# E1 X" [" ~" o; y
    <>  按照以上步骤,就能实现图形程序的独立运行</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-20 23:55 , Processed in 0.456613 second(s), 51 queries .

    回顶部