QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5510|回复: 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++语言提供了下面的函数:
    7 i: o0 O1 i+ N! Q: E$ Z  void far initgraph(int far *GD,int far *GM,char *P);
    ( I  }' U8 w. F1 l- b
    : i; g! O' M) A! ~8 T( V  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
    1 E. p' D. n; j& S4 W+ ^9 h
    - m% r$ J7 _, }' B" T' N  图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
    : F; c- `. {9 Q! o1 o, K  void far closegraph(void);
    3 f/ w8 R: N. Q' g4 q+ P/ [! ]' x1 L* z$ d  p, d8 s- Z8 {
      许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
    5 _+ L  D8 ~6 {2 z  n- S$ }) c6 g: A5 c4 }  D  Y- c1 g
      1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:3 \+ B  T- t2 }, ^. a/ u9 L
      C:\TC&gt;BGIOBJ EGAVGA+ W- B3 e' u/ y9 t7 K. W6 A, _
    & @% x" h  m; P2 w% O6 V) [, B/ S
      按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:) I2 @; M: f2 W7 H, W0 P) q# m
    </FONT>
    ! a6 q/ ]! |* B; m
    6 q4 [' N* j5 ?. c; z1 x0 w' x* _: T3 p
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>6 K3 q8 k; }" Z
    1 X9 X* ]( \! G8 J$ i' L
    <TR>, T5 z) k; A/ B5 |) f' y8 @$ o0 _
    <TD>  C:\TC&gt;BGIOBJ TRIP/ x1 u+ N, {$ c' h  a& F
      C:\TC&gt;BGIOBJ LITT
    ( F; p! Q% N+ }" J  n  C:\TC&gt;BGIOBJ SANS! {% g3 @- z- S8 W% y
      C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>
    0 @# i: V1 Q1 V7 A+ b$ Q<>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
    / y" v+ S, b3 M, ^; I</P>; l- ^  v- ]0 w
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>1 y  S& N6 T, j( K7 t
    ( Y- f, I; l2 B+ o; j: v8 Z
    <TR>
    1 v$ _* I5 K' U, h8 W# [8 a: n<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
    / q! V4 q( Z6 @0 ^  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
    2 m, P, \2 W2 \7 Z8 e  b3 D  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT/ c; l4 ?8 p" X$ z/ f
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS/ k, a$ z0 r9 M$ D4 G6 D; S$ n
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
    ) W9 k( N' S, |" i: g<>  也可以使用TLIB、PRJ程序代替TLINK。
    - r+ C7 u' t. s$ j0 ^$ ~3 K5 \  ^& ]" K8 n) W
      3.在程序中调用initgraph()函数前,应加上如下语句:
      O3 d6 R  L% c7 t( F7 E+ k  [8 H  registerbgidriver(EGAVGA-driver);4 X8 L) |. L* b) @( f
    / E* b3 Q8 m+ P' K! i
      它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
    / U& Y) W% H% h' _  registerbgifont(字体文件名);' q. z! B: M- {' j! p3 A/ {. t

    9 X+ D+ S' _2 i. t* n  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:) n, y  q' e& Q" H( N* Z6 T
    </P>
    # {- s5 [5 O( v$ r9 T' ^6 x<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    ) j3 _- n: o' h" X1 v3 T! `
    ' c& Q$ m; M3 ]7 u* y* Y<TR>
    2 o& x. e6 t* q. E+ n; b2 M<TD>  void InitGra(void)) j4 b6 g& m% D; p
      {int GD=DETECT,GM;: f: M/ k: i4 Z& i- O8 A/ O. m
      registerbgidriver(EGAVGA_driver);4 a) W/ O7 S0 {" p3 F4 h
      registerbgifont(triplex_font);
    - |* W6 R- n3 C  registerbgifont(small_font);3 a1 _/ I" Q: Q
      registerbgifont(sansserif_font);% H* v( n- _3 w
      registerbgifont(gothic_font);9 Q+ G; }6 u' X* s) F0 Y$ z
      initgraph(&amp;GD,&amp;GM,"");
    9 K2 c+ u8 g, E- C8 x  }</TD></TR></TABLE>
    * V6 B) T( T: J" d0 P<>  按照以上步骤,就能实现图形程序的独立运行</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 02:32 , Processed in 1.860660 second(s), 51 queries .

    回顶部