QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5515|回复: 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++语言提供了下面的函数:
    & J; V/ X% X& z) q1 m  void far initgraph(int far *GD,int far *GM,char *P);. f5 }' ~1 z5 u8 `6 S2 R" w

    & Q; V# N9 k: @; q& F0 o! Y3 o  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
    4 J" ~5 U+ T- |* l  e; H, v
    7 {( i4 Z0 ~; G5 S* H1 R  图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:  g1 O! l; k; v% Q, _' \0 x
      void far closegraph(void);
    ! B- g9 @# I! P) R# I# W, s. h& Z3 @' E: X
      许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:4 F; c$ X- S. I/ G

    ) @3 T+ |/ ]0 E  Q  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:9 Y% b( t, m8 g$ Y
      C:\TC&gt;BGIOBJ EGAVGA
    # i+ @- Z9 s9 w0 J  ?  S* {
    5 Z; B- v# [/ Z7 l4 G  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
    # C% \- I: e" u2 ?3 C7 l</FONT>8 B. n: Q: @; _2 t1 t6 k
    7 @+ N& D7 [# ^  E! _" e" s8 E  b

    5 B  _( J7 a4 B: D5 l- ~/ Q1 `1 G<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>0 G6 s% k( f7 N, I8 ^0 M

    ; k" ~/ S9 U. B' r& W<TR>7 r+ E  N3 s% `* |1 |2 b  C
    <TD>  C:\TC&gt;BGIOBJ TRIP7 g7 }. O6 U1 v
      C:\TC&gt;BGIOBJ LITT
    0 I/ }5 E  @+ E( t; H/ @  C:\TC&gt;BGIOBJ SANS# X' v: l* V6 R  I, x, f. z
      C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>
    ; N$ m4 m) V5 x3 K4 A, j. l<>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
    ; O3 p, F7 p/ N+ i</P>9 X8 ^# E9 _. }
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    ! J; z' b1 |* f4 V9 F% f  r7 W. _+ R$ m
    <TR>' k! g, V  x* `% N
    <TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
    . a4 k4 D3 p. T5 N$ ?  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
    ) Q" o- K5 X9 {+ X. ~' r+ n$ V  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT% W# }3 K, Q& [# y
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS/ \: s, |! [* \+ W1 U% o
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>8 _% r3 d2 e- N; X1 t
    <>  也可以使用TLIB、PRJ程序代替TLINK。
    8 P- {( {! X/ P3 c, Y$ A
    8 j/ Y- [; x( i: ^  3.在程序中调用initgraph()函数前,应加上如下语句:3 ?; ^6 ]: g; W1 z5 F
      registerbgidriver(EGAVGA-driver);
    2 B  R# }" \; ^  T3 z* ^7 z0 s/ [7 X' W& o
      它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
    5 t9 I/ M7 c- ?  c/ |  registerbgifont(字体文件名);
    ( p' t1 [% D* z6 L( B7 P
    6 i% ~9 Q5 R9 j2 {! ?9 L' _" X  R: f  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
    3 ?9 S( E  M6 o: e% }. a2 A& E' Q</P>
      ]. w: l" o: }; ?6 f; v- _' ~<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    & G5 y- E1 N" o* J. w+ M
    ) g/ M/ ?, i, N8 z0 R<TR>9 G/ O7 e- K6 m& ?" V
    <TD>  void InitGra(void); |# ?% q( Z% r- M1 Q' c
      {int GD=DETECT,GM;. I; s0 A. e; U7 m
      registerbgidriver(EGAVGA_driver);9 k: a  \& D( ?$ {: N% b+ I5 q; H1 y
      registerbgifont(triplex_font);$ {) l( A8 E5 L  _  w3 x8 A
      registerbgifont(small_font);
    ' k7 J, m. l% B1 ?+ Z  registerbgifont(sansserif_font);
    5 Z. _% g6 m: o5 ~  ^* u  registerbgifont(gothic_font);- J. Z4 ]6 Q" _  x0 H1 Q
      initgraph(&amp;GD,&amp;GM,"");$ D. u6 U( j: A5 w6 K6 X- @  t1 U0 I+ i
      }</TD></TR></TABLE>
    9 I# p0 s$ v! }- |% i5 ^4 I<>  按照以上步骤,就能实现图形程序的独立运行</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-4 00:50 , Processed in 4.139857 second(s), 51 queries .

    回顶部