QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5487|回复: 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 Y* ?# D3 Y3 I0 {9 r  void far initgraph(int far *GD,int far *GM,char *P);( I1 G1 t, J# A) o, W+ W

    1 m/ `8 Q  C! ^" u0 P$ p, U, ?& @  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。' ^3 B) W& R  T, ]
    * ], b( T, `8 E7 O
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:- u- F2 B% d6 L3 g( `- L
      void far closegraph(void);
    ( v- M  {, {5 v
    4 E" E4 d( y' f  m  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
    5 G  d+ B) I, i/ R+ `- N' x" o4 V
      1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
    6 {$ i4 G/ w9 W8 r: p, H( [  ~  C:\TC&gt;BGIOBJ EGAVGA0 p$ x2 T- P4 R4 S1 Q% ?
      q7 v- T6 q' k
      按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:. y& |( |& y( {: f7 \" X, n, K
    </FONT>
    0 Z2 D5 v6 O$ b
    7 D: n5 u3 {+ z) [* E
    1 E9 F' a$ f4 G. h+ O1 |8 l<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    + E7 S: J2 l) G, |( J: Q
      E, x, z2 X# {<TR>( y# ]6 c! R  @5 r% U
    <TD>  C:\TC&gt;BGIOBJ TRIP- k# \; d) A/ \2 l
      C:\TC&gt;BGIOBJ LITT
    - w; {# {4 N: ^  C:\TC&gt;BGIOBJ SANS
    0 l/ l/ c' ~5 W2 ]4 A5 x  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>3 i0 c4 R6 o  d2 e3 G5 H7 d
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:- M. h5 \% M# t" B
    </P>3 S; c7 P+ c$ x% f+ a
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>- H0 q/ e/ X1 \' ]

    & }9 c$ b7 x6 q* Y* k<TR>
    0 `  f! m5 F8 W3 ?$ I! v/ c# y9 Y<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA7 u" v6 B' @4 N7 {
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
    # l. C. g" x* B$ t! B  Z' |6 x  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT( Y3 i3 ^* |( s
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS% d- h/ W$ S- M1 _0 Y9 Z
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
    ' X6 u  c. x- F0 V  z; X. Y. i' j<>  也可以使用TLIB、PRJ程序代替TLINK。2 u+ ]3 x' g! A" y
    5 B  h( ?- B- @& Z4 j, b
      3.在程序中调用initgraph()函数前,应加上如下语句:
    0 ^0 A& {/ S, v  registerbgidriver(EGAVGA-driver);
    7 T" k* O# ~" M5 W, P# y+ Q9 ]: ^3 d& K# p  T( }2 l$ l. |
      它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:3 m0 Q9 A0 ?, o/ t% v+ ^+ S1 c* G7 k
      registerbgifont(字体文件名);) t# ~3 J/ ]" T2 q$ D6 g5 l( Q: s
    5 W0 S/ R7 Q* W
      4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:, k4 w8 _( V' s% x3 H, m3 E0 i
    </P>
    / k: i2 n* m$ M: G  r0 C6 z<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>$ I- k  _9 @# ?  M4 J7 _: {6 {

    4 t* |2 W) P4 T# h<TR>- |  |% O. u5 w, d3 h  d; y
    <TD>  void InitGra(void)
    ) l  S5 q0 r! ~  {int GD=DETECT,GM;
    5 M% ]8 g& f+ a8 b/ c* B& o  registerbgidriver(EGAVGA_driver);/ @7 f0 W2 S" {7 y: v  e
      registerbgifont(triplex_font);! F2 A* U8 n( V, x  C' [3 B# |* G8 e! W3 Q
      registerbgifont(small_font);
    $ c+ A8 H1 N1 P7 b  S5 n  registerbgifont(sansserif_font);9 L+ a$ a' r6 \. `) S  v4 I8 P# M) T( ^
      registerbgifont(gothic_font);
    4 f5 d. [4 E$ r9 p: R/ b9 _) w9 p  initgraph(&amp;GD,&amp;GM,"");
    * G* u. W, ~8 h' Y  K  }</TD></TR></TABLE>
    2 d. U0 u, V3 u<>  按照以上步骤,就能实现图形程序的独立运行</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-6-3 12:23 , Processed in 0.574241 second(s), 50 queries .

    回顶部