QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5496|回复: 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++语言提供了下面的函数:
    0 I, d( ?% h( }  X1 _; T: O5 ~% w  void far initgraph(int far *GD,int far *GM,char *P);; F1 P) N; H# k8 \/ s

    , l; U2 C# ]- [7 \" Z; H  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。  ?* h' I4 b. y
    9 m: z+ R# W9 r0 e( ]) {/ G, ~
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
    7 V  q/ H: J! f* F% _/ o$ P# d, e  void far closegraph(void);
    / Q6 V( L- n  Y! i( k, [$ o  N5 W/ a8 o3 U/ P
      许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
    # w" D: d- H$ Y& n6 [* D) i
    & Z# g5 h2 P. C& s% b$ g: L) A  s" ]  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
    " j4 {& ^: q) o+ j  C:\TC&gt;BGIOBJ EGAVGA
    0 @. [) A8 K( n: M' y: Y/ `
    & N; n$ q. g9 |- h, x  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:7 J9 F; m! Y6 G/ m
    </FONT>0 r6 c$ P$ t+ A

    6 a+ h4 w7 z) i! q; T
    ' r' J& o& w' |: ^, ]$ g<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0># g/ p+ N' f8 D  }

    4 k. o' E* x5 f9 Y$ G5 x<TR>9 Q2 N0 V7 d3 p, |5 |4 }
    <TD>  C:\TC&gt;BGIOBJ TRIP
    * ^1 X- Y# E  J! f  C:\TC&gt;BGIOBJ LITT
    * _* h- W, V2 y( }0 k  C:\TC&gt;BGIOBJ SANS
    4 t5 _- j5 `" o; |# Z- t* c9 I  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>
    ' k# i" |* P- e+ ]) F& r/ o* |<>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:9 W3 C: ~' p& f. e2 ]$ y/ o
    </P>4 q" v- A8 w4 E- k, H  o6 |
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    8 G) ^$ Y) d) `  p* ~' q8 y$ m. t- t. S$ C2 y" `
    <TR>
    ) D& w  T- M! ]$ Z' E<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA! J% Z) o" l2 f" ~# g& e
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
    * v1 ^# Y$ g2 c0 I# R4 R  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
    9 \: b7 T, b( f: N: E  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
      s3 v& W- ^; Y8 P  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
    * ^6 q: N/ Z1 s8 ?! V* t<>  也可以使用TLIB、PRJ程序代替TLINK。* p- [* F0 E$ c5 Z5 f: i& {# h$ s
    ! e( b/ i. ~4 w' d, n: I
      3.在程序中调用initgraph()函数前,应加上如下语句:
    8 l8 s/ d3 V8 Y# ]7 P4 \  registerbgidriver(EGAVGA-driver);
    - q% z7 \3 v. t5 ^" g' N- ?( w
    & |# Y  o) Z5 |! ~2 x3 G, J  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
    2 y8 y3 r- {2 P" J# `/ [# [6 R  registerbgifont(字体文件名);, \/ d) M( t) }# J% y% X% j9 b7 T" o

    8 O7 C) g! Q4 r9 u" Y  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
    6 {! _( T7 T, T% i% k' _</P>
    7 u  \6 T* w7 A. ]<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    2 r! H+ n* d9 K! \; m+ o# A* f: v2 B" L8 `: i( h$ S4 e6 j
    <TR>
    6 U3 J  k8 z8 `. \<TD>  void InitGra(void)7 ^- A' j& z) R+ Z3 u4 P
      {int GD=DETECT,GM;
    + E: W8 N! t0 o. f" E  registerbgidriver(EGAVGA_driver);
    % q+ |9 Q! E7 J0 @, B  registerbgifont(triplex_font);
    ; ^% D2 f% A* h4 ]  registerbgifont(small_font);
    3 e( B0 ^& z  G6 p- R: _! m  registerbgifont(sansserif_font);
    3 A& |/ P; X: v1 f- D8 w  registerbgifont(gothic_font);" k' l' ?2 a0 W$ L# M; e, o
      initgraph(&amp;GD,&amp;GM,"");
    / |( b- w  b9 ~* K8 T: K% `  }</TD></TR></TABLE>
    8 {& s, B6 N: p7 N4 L; J) i. 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-7-19 12:47 , Processed in 0.409496 second(s), 51 queries .

    回顶部