QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5507|回复: 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++语言提供了下面的函数:; _' S8 ?( l* a1 w
      void far initgraph(int far *GD,int far *GM,char *P);
    + [% I0 u# k) S
    * T) W( D( h0 H  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
    # P( Q# M9 C- r- g0 g) ~' P- m2 M
    ) J" u& E  R4 a' f  图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
    ! Z4 B2 D# j; A' b/ X  void far closegraph(void);
    1 L7 z% Z' O! b# u3 u! g* d
    2 S  m( Z1 D& s+ f. g$ x  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:$ P  t- Z% s$ K; F: Y
    : X1 U2 d- Y+ H& ~# ?
      1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
    , I: R' `  q2 J2 W  C:\TC&gt;BGIOBJ EGAVGA
    7 `: i" H& T1 z( ], C; r
    ' |4 A6 y7 @- p  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
    ; p: k& z- }, N9 G4 e</FONT>
    0 y' @& b4 O: S6 J5 M- S, t
    0 o. y, r  ~, j; B+ B) ~( f. h4 H' T0 s. X) N! P: H+ G
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    * H+ P. P- ]' o& ?5 a
    3 A- _, j, {( O$ `5 v+ _<TR>; i: W  a7 y$ w7 o4 p1 t
    <TD>  C:\TC&gt;BGIOBJ TRIP% x" }- @6 z/ `6 |9 |! T
      C:\TC&gt;BGIOBJ LITT
    8 O) L0 j  f3 M3 K2 z  C:\TC&gt;BGIOBJ SANS- k8 W8 K# c4 V, x
      C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>4 @% Z% R4 `4 s3 G8 [( T
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:2 |' C1 t4 p* `" N0 r
    </P>
    / Y; h- Z# P! y1 P" z  M, o<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    . k  j: W  L" B, I6 ]
    3 t; X/ u! }# F6 f& k$ @<TR>
    % O0 |* P9 u/ l! Q& `; r! Q<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA' ]' `. W$ p4 h& w8 r' z* n) E
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
    & s; W# v/ @/ _: ?) K  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
    : D5 w# l. S* z  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS% s  L3 W& a! v4 I* |
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>+ o  h& E& D4 _4 e
    <>  也可以使用TLIB、PRJ程序代替TLINK。
    ) M2 g! t! D; J4 H4 Y# ^9 r- R; H
    % T5 ^* L% C- m4 D/ d8 d  3.在程序中调用initgraph()函数前,应加上如下语句:3 ^5 L% ^) j' T; Q1 b' _1 Q
      registerbgidriver(EGAVGA-driver);
    . w/ N% \& k$ x' z1 Y1 q9 B& ?
    & u4 i! @/ K! Q, H" ~9 z$ ?- b  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:( S& C% s2 I" O
      registerbgifont(字体文件名);+ a# r. G# ^$ M; w( x2 {7 Z

    & K# @& ^" s8 B9 H$ }  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
    , v! F) V8 z& |# r0 ?</P>
    1 P- Q+ g) X" d( |2 E& L<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>  s5 @$ \; a7 z; f5 L' W
    4 D0 i( d  _" }) D' U, l& f1 {/ _0 E  l
    <TR>" a+ E7 U$ e% b0 I3 i4 _+ N
    <TD>  void InitGra(void)- ?" K1 |7 k0 h# O- T
      {int GD=DETECT,GM;
    : d9 A# ?  U$ z- ]' m, T& G  registerbgidriver(EGAVGA_driver);
      T; c6 ?$ U' |2 R* y  registerbgifont(triplex_font);  Y1 j4 C! k$ |, P! h% L) ]
      registerbgifont(small_font);
      I8 J2 q9 Q. o3 u3 ~  registerbgifont(sansserif_font);; j' u& d* U! w% p( F/ k
      registerbgifont(gothic_font);
    - g! d. _* `0 s  initgraph(&amp;GD,&amp;GM,"");" e/ O" X0 b5 ]3 s0 P! s
      }</TD></TR></TABLE>% a8 j# {: E) M
    <>  按照以上步骤,就能实现图形程序的独立运行</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-2 23:18 , Processed in 0.625268 second(s), 50 queries .

    回顶部