QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5492|回复: 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++语言提供了下面的函数:
    & k9 S; X7 r/ _6 q, e* F# `2 c3 I  void far initgraph(int far *GD,int far *GM,char *P);
    9 w- V- K# c+ Z2 {$ O# M0 g! d% A9 D0 _7 V2 n  `6 |
      其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。6 f1 a0 B- n* u  T
    ! W" X1 X6 D: F% k, y
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
    / J. ~# `8 [. S7 }* y  void far closegraph(void);% R2 z2 C) }8 H( E4 G- N
    0 g6 `/ y' I, V1 T
      许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:/ U8 J) n3 O+ Q# i* K" Y

    % P( p: C, [! }7 r! F  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
    3 O3 g- ?) g% F6 j  C:\TC&gt;BGIOBJ EGAVGA
    9 P7 ?2 r7 Y* F2 z% ?( j7 b6 P+ N+ K) U6 M
      按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
    ) a. n/ y( W$ O5 X% r</FONT>
    4 E( Y3 y9 b* P/ q4 N' F$ W+ P& V1 N: N( U; \$ d6 K2 f& ]

    : p7 _& a+ b& u- u; P<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    8 ^3 ~1 z$ O% X! F, u& h# X3 F1 R0 G
    <TR>
    9 B% L2 z" p$ }9 [' C<TD>  C:\TC&gt;BGIOBJ TRIP1 X6 ?( k& S( F! @( ~- v: i; u
      C:\TC&gt;BGIOBJ LITT7 V8 t6 m9 n2 A
      C:\TC&gt;BGIOBJ SANS
    " t3 w2 V8 z! ~& i' x& V  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>; H) v) m5 V; C8 t& E$ T2 f
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:* E8 Y% }( x% i; b5 R9 k# S& z% x! m
    </P>
    2 k2 L; i2 m, _" m! z<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    / I3 Q. r9 d  t
    ' e* ?: V4 }- j8 s) J0 u2 s<TR>
    3 e4 y$ u9 x- J1 M# L<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA( n: ?& u) {; I4 v" f
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP; q- P, O  F7 o' F6 i0 H
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
    ; P# o) ?. m( N. e- c  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
    5 |0 S6 v. w+ z  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>4 F: k6 B0 Q* A9 o: ~+ q2 U8 @
    <>  也可以使用TLIB、PRJ程序代替TLINK。
    " h9 t! m6 v8 K3 Q' ], j8 u1 _2 k! Y" d* o" R" ^
      3.在程序中调用initgraph()函数前,应加上如下语句:4 p6 K6 F* E2 q  e. R$ x
      registerbgidriver(EGAVGA-driver);) |5 a* Z7 ~) E/ \' L

    1 L: v. g. ?  F" r! S  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:: G* j# D* w& E: U% Q5 D  y
      registerbgifont(字体文件名);
    : E. w$ {- C. ]+ P; X3 G/ F+ q" S; P7 q, m) T1 J1 L0 G" Q( D
      4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
    6 z6 d3 @6 v5 A4 P+ E# t$ ^</P>
    ( x0 t3 y/ [. h' {, O<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>$ R3 w  j5 k+ u$ J( g

    9 y: V: r- `& F$ b5 K<TR>
    ) Q+ p( x2 ?. N6 d$ G% x+ A<TD>  void InitGra(void)& b9 {$ g' `2 e6 Y/ U5 q, P
      {int GD=DETECT,GM;* R) R6 K" E6 L! k( r3 P. H
      registerbgidriver(EGAVGA_driver);
    7 L. f0 u' ?% n1 j3 P7 B& Z  registerbgifont(triplex_font);( T" {: U1 ?7 ^4 G2 K) O
      registerbgifont(small_font);" p( P# p, O$ |" W
      registerbgifont(sansserif_font);  ^% K7 b" w: }* `& [
      registerbgifont(gothic_font);8 }" Y' _3 i- e* k8 m
      initgraph(&amp;GD,&amp;GM,"");" T% L3 t" U: K' s. S
      }</TD></TR></TABLE>
    # I5 S9 D" U3 n<>  按照以上步骤,就能实现图形程序的独立运行</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-18 15:39 , Processed in 0.490589 second(s), 50 queries .

    回顶部