QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5498|回复: 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++语言提供了下面的函数:9 S: U# K* Q6 x. ]' n
      void far initgraph(int far *GD,int far *GM,char *P);- i* a3 E5 U4 @# y

    0 h3 }; h: v' b% J! M+ u  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。; \  Y$ L7 t' M1 K" g# {$ `
    0 v% _* k: E& ]3 o) z; E
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:4 D5 u  z) [/ m( b( q9 d
      void far closegraph(void);8 e1 Z/ i& _4 y) |7 t% H$ `

    % n* z5 o. _. P% ?  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
    , _* \1 x* [9 C+ `3 g3 P6 @! q
    # U2 a0 w. x( Z5 g, _  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:4 V* p1 {. ^; E( x) @1 N2 G8 {
      C:\TC&gt;BGIOBJ EGAVGA
    4 O: X8 r+ I% T9 p
    ! M: b& I5 |+ W8 ~% s% I* q( [% C  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
    + X4 x/ J1 d/ d& k5 w" S& O</FONT>  Y; d9 {! j& E' N

    * K1 M$ U3 g) f1 E2 U4 q8 |
      V& Z/ S' ~+ Z& c6 E4 `6 v<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    1 d0 k# J/ d& v' l
    * m) K4 r+ A# w! n<TR>
    ( D3 J8 n. N3 H% n+ D<TD>  C:\TC&gt;BGIOBJ TRIP6 x, l3 i# B' W% e
      C:\TC&gt;BGIOBJ LITT
    6 \: \& i, I& K2 q  C:\TC&gt;BGIOBJ SANS1 b( m2 \, S( |' V( r0 `
      C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>6 u# |" Y( B! W; |! e# D
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:2 o8 d+ |  {& a! r+ _- s
    </P>3 O  \/ W3 e8 z+ B
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    ( J3 x& F% b3 Y. d$ }
    1 w# B/ L+ Z6 B5 ?5 j<TR>5 A$ c7 M) ?0 l0 ^9 E
    <TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA2 V  \" T# X8 D% T/ m5 |$ m
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP2 x  `" F. O, u, A. Y- x8 s
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT8 o' Y0 h( Q9 w( D5 C3 _7 a
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS) R5 [0 i: W7 ]- A4 U
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
    * Y4 N. Y* \. {- g' B- W<>  也可以使用TLIB、PRJ程序代替TLINK。2 R) b' K! w- J; {

    0 q6 J+ M- q" M" b: W" I  3.在程序中调用initgraph()函数前,应加上如下语句:
    & F$ B- `/ ?6 q/ r  registerbgidriver(EGAVGA-driver);. o/ t- H2 G; y: K
    1 G0 ~7 O1 d5 U8 O9 `
      它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
    6 ?+ x/ e7 E: P  registerbgifont(字体文件名);2 m1 C% {' I, |

    2 `% Q' l& Y  u  V8 x0 F+ E/ Y  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:7 L# r% A7 o1 e4 K; _: W2 [
    </P>' K' C$ @7 f. i) U6 X, S
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    . G1 Z8 ^9 r( _+ K3 s! D5 ?0 [5 F/ b- ^4 ]5 _# A$ |
    <TR>+ g$ w: I& m0 @0 o, X. o* q) C
    <TD>  void InitGra(void)
    # ?/ ]4 ?$ T& i. s* l/ y1 \5 S6 m  {int GD=DETECT,GM;1 J* |: V3 F/ P. E$ W- E
      registerbgidriver(EGAVGA_driver);: |, [3 |( `' b! m9 ]2 H6 v
      registerbgifont(triplex_font);# w+ [% @$ p- G
      registerbgifont(small_font);9 P6 f& b: r1 I  e1 Z) V8 F+ {9 F4 g
      registerbgifont(sansserif_font);
    % R' S3 s; _/ R. S  T/ c: M  registerbgifont(gothic_font);
    % q9 f3 K1 p8 U  initgraph(&amp;GD,&amp;GM,"");
    $ i8 X" Z9 }6 G# B5 e  }</TD></TR></TABLE>
    $ n+ L% f& ]; [; L. L  y8 S<>  按照以上步骤,就能实现图形程序的独立运行</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-19 17:00 , Processed in 0.443173 second(s), 50 queries .

    回顶部