QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5060|回复: 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 z+ s, E" Z# {! W: {7 _% x: ?/ l
      void far initgraph(int far *GD,int far *GM,char *P);6 K; {+ @5 }7 i. E* `

    / m7 O7 ~+ @4 p; }# c- M  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。. d; L' j( `) X+ O9 I% V

    7 `5 V+ c- z- g4 E  图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
    , b9 {' J  W: `4 B1 x  void far closegraph(void);# z) s( R$ L, V$ ^

    2 ~9 \$ ~+ v. y3 y$ d  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:5 x  y" J8 o2 X0 q' z9 s

    * ^$ I( t1 g4 B( F6 \  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
    / M/ y' S$ B, ?" r$ [: p6 }  C:\TC&gt;BGIOBJ EGAVGA
    ' M; m9 }# P, W: _
    2 n3 Y3 B. P2 L/ q  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
    7 J; ^$ U6 @. w  l- A</FONT>6 g/ u! X1 }; o" X! a6 e

    ) F' c, G- a, E. ~* y. y/ x9 a; ]2 A  e
    , [6 |6 z6 q0 {# E, n, G<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    ! S! h' n) a: v  B- b4 Q
    - [) n% Q+ s# W8 m3 S<TR>
    ) c5 N0 r" \' h% s6 K6 g$ K+ K" ^; L<TD>  C:\TC&gt;BGIOBJ TRIP
    . g: N0 H+ A$ d; o$ w  C:\TC&gt;BGIOBJ LITT
    $ s% S0 a: q: U6 c" M. N% B  f  C:\TC&gt;BGIOBJ SANS: ~& l6 Y# k4 d' _/ J
      C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>  I% e$ D; E: n, j" ^
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
    3 r9 b) c' u. g</P>
      ]" F2 {$ x& r9 }' u5 |<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    3 Y6 j- {3 \' l! E4 z
    9 T: G0 y& ^7 `% r) ]2 d<TR>; D* R, h" i( J( Q' o
    <TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA, X- p$ ?! R7 q3 a  R
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP: A4 X; _( u- Z3 u: Y* L1 H  |) F/ V
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
    ; d/ }' h# W+ j, i  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
    6 M9 _# v, {  w& o6 u* C  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>. {, v% s  M! C$ M
    <>  也可以使用TLIB、PRJ程序代替TLINK。
      A. e/ d  Z, W5 a9 Z$ U6 E4 x' g* o4 x$ h
      3.在程序中调用initgraph()函数前,应加上如下语句:
    ( r! n0 y; _7 j% I  registerbgidriver(EGAVGA-driver);! D6 H8 M. w+ U

    % }7 a3 C: W$ j  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:, w5 l! Y* z4 O2 S& j! C8 ^
      registerbgifont(字体文件名);
    0 _! @+ y0 |) G" |- u! ?/ v& V4 j1 y$ b: W( r9 t: s+ t3 F
      4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:. R  m) @2 {& R0 O2 r
    </P>" ?1 i% R* d$ {9 ?; ]6 T* S
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>- V, a0 I6 Y% N

    . y; t0 Q6 ^: l0 v<TR>
      B' [# \% i: m& r. I. }3 j4 V<TD>  void InitGra(void)
    " N& [  u  O' ~! j/ a/ j  {int GD=DETECT,GM;, I' M8 y+ t% W: m# F
      registerbgidriver(EGAVGA_driver);' i2 m8 Q6 I# x7 ^) F" K8 O
      registerbgifont(triplex_font);
    1 w; L( n: }; [/ P" ]" Z) M  registerbgifont(small_font);' M5 r: T3 D: _; s5 n
      registerbgifont(sansserif_font);* L+ q6 P3 ^. {- D% [4 J
      registerbgifont(gothic_font);
    9 w" h* V' P' u$ b% R  initgraph(&amp;GD,&amp;GM,"");
    ! U( ]: y! X& R& F3 U  }</TD></TR></TABLE>
    ( v: e5 t! _+ v8 y, s9 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, 2025-7-26 22:48 , Processed in 0.424051 second(s), 53 queries .

    回顶部