QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5516|回复: 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++语言提供了下面的函数:9 g0 C! Y# i' _( Q2 z
      void far initgraph(int far *GD,int far *GM,char *P);
    4 [% o. C" _' U# s
    : X8 i+ D9 K/ w9 }% i5 ?  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
    * v- d/ w& W" Z# N3 o, k% V6 D" m& T* E1 ?" K% e6 v6 [
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
    5 h9 s9 L' c0 j8 C0 D6 {# e% T  void far closegraph(void);( t. p. L) `! X3 [% x# j% a% f

    1 j6 t9 ]$ [* ~4 L9 Z, n  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
    / C3 i# R- j, i. C; @! A$ u  [7 H) D+ z3 m* g! T% E8 Q( T
      1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:9 p' |$ E) i  g
      C:\TC&gt;BGIOBJ EGAVGA9 q6 M9 y) Y' L3 G6 D

    " [/ u% p) z$ L1 U" ?- Q& h$ i) e  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
      `. z5 T2 L, V' v2 R6 A</FONT>' k( u, j$ u/ Y
    7 c. I* v8 c8 v1 t: R# h0 O

    ' I5 Z* B% W% F1 r0 y9 W4 V, u<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    9 Z# S# u4 x, K9 J4 y. N1 O/ [+ ~' r7 l2 [# I: l8 u  B
    <TR>
    . l1 O2 G& e) @% d- {' s" U<TD>  C:\TC&gt;BGIOBJ TRIP
    ; a: I, N  ^/ z  C:\TC&gt;BGIOBJ LITT
    / M6 W! F# Q% O0 @  C:\TC&gt;BGIOBJ SANS
    . l# V0 d$ R  f  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>& B( s& ?& I* r, v+ D5 {4 ^
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
    ( U, P, k& }: d$ f- l</P>
    7 g9 I0 r) E: ?8 i& \( a<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>8 E; F7 u( {* M. }3 E7 I
    3 m- d; G) |) Q6 [( F$ R% [
    <TR>% p0 N9 i6 ~4 p% L
    <TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA0 q# P% H3 o: |! U7 N$ G( [* L
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
    0 Q7 f( A) V* m3 X  Q* d  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT) G8 V9 Z+ V, ^* A
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS! N( r6 @: `' A7 b  Z
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>- W4 j7 O$ Q  t+ r
    <>  也可以使用TLIB、PRJ程序代替TLINK。; Y: _1 B6 l- }, p0 A; `; L

    ' i; g4 w' v5 b0 S  3.在程序中调用initgraph()函数前,应加上如下语句:! [# W1 x$ Z0 T& Y, \% Z/ q3 h
      registerbgidriver(EGAVGA-driver);
    # v7 @( J  d( v  M, Y) k( v- s: ~! w0 _
      它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
    1 H6 I* E" w; B6 Y6 X0 x- f  registerbgifont(字体文件名);9 n" Y  r* d3 L

    + K* ?2 ?1 t3 [9 a4 w  \  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:5 O  k9 o( b) p5 m  Q( D5 s9 ?6 ?
    </P>" B6 A6 U# G: I: d
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    ! k. K7 L$ O3 Z7 t* Q
    0 M( L0 a8 V3 S' u  q<TR>, l- \6 V9 j9 i
    <TD>  void InitGra(void)
    * q% H1 T7 Z1 k' S+ ^. b  {int GD=DETECT,GM;
    3 J7 l9 g0 R! P( M! J# e& I9 s  registerbgidriver(EGAVGA_driver);0 d  z3 C3 p* f) Y6 S. b7 h
      registerbgifont(triplex_font);& O( a3 y' L) _* Y1 {7 ^
      registerbgifont(small_font);) m4 `+ L$ N- F6 E0 h: B+ z3 l6 ?* J
      registerbgifont(sansserif_font);( T* d. y! B6 v; A- q
      registerbgifont(gothic_font);
    * y' x* \: c6 ^& V9 H9 J: k) M+ x  initgraph(&amp;GD,&amp;GM,"");8 _% D* q% G6 k0 i0 A: U8 \+ E
      }</TD></TR></TABLE>
    ; k3 p& r, M: S9 p<>  按照以上步骤,就能实现图形程序的独立运行</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 05:03 , Processed in 0.408768 second(s), 51 queries .

    回顶部