QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5509|回复: 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++语言提供了下面的函数:7 D8 E' i/ W' c
      void far initgraph(int far *GD,int far *GM,char *P);  S+ b; Y) R% D* }+ S
    3 {$ r5 O" p# k5 w
      其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。  v* |4 [& G' g  v/ B( U
    $ W9 d' M0 ]1 m% K" j
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:. e2 G/ F, ^( @. K
      void far closegraph(void);
    ( U9 Z; _& h& ^+ u
    6 C2 p! V! W4 j' W! e4 W. U  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
    5 @% O2 J- c0 \( N
    $ A, h" v. X7 M0 ?# d  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:9 j. a  ^2 \3 s& c
      C:\TC&gt;BGIOBJ EGAVGA5 K; o3 [# |& H

    - u9 G1 o* j) y- Z6 B7 R4 m, G' ]  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:3 G6 S, e) l# v2 j' o% z/ |* v
    </FONT>0 L3 [# Q1 f# u) W+ l6 r7 A0 R
    , U! C* |6 B! ^0 N, p. Q
    # T* N: l/ ]% K# o$ f6 F7 P5 Y
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    8 a5 n& l$ n5 J3 r% M% s1 C: `  y' G$ R6 X( N
    <TR>* \+ R& w( ]& L8 y
    <TD>  C:\TC&gt;BGIOBJ TRIP
    + {  K/ s! B- {. u9 F  C:\TC&gt;BGIOBJ LITT) p8 m- R0 g$ y
      C:\TC&gt;BGIOBJ SANS
    ( o& v, o4 L  ]! f. M  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>& d! b: u/ f" z. R1 V  P
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:, V% w' t6 }) a" R4 C: S" a
    </P>4 J7 B& l5 f$ t, U
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>, x3 {, I$ |+ ?' a

    ) U+ a- I# |; X6 u/ o: e+ b/ D( _<TR>
    ! i& j6 F$ J" b7 X' D( _<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
    - }6 D' y5 e2 c) C5 r- b* y: X  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP- E! E7 ]. v. l6 D( n1 \6 ^
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT0 O! [! R1 S! f& ]2 X/ n7 X
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS! j1 Q+ j% Q7 F
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
    & p+ p4 u) @+ _) |<>  也可以使用TLIB、PRJ程序代替TLINK。
    7 d* q7 L4 b$ Z0 V$ P1 ^+ p* F# M1 l" h# f. u2 r
      3.在程序中调用initgraph()函数前,应加上如下语句:
    . T$ F; T5 E, j' w& M  registerbgidriver(EGAVGA-driver);
    * `& V7 K. e  \7 Y, v& S% }( h
    5 F8 O6 k' Z$ w  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:2 D6 ^# [$ x& i" a7 \1 e- a; K
      registerbgifont(字体文件名);$ i% n, s/ I1 ^# R: @( K" t! M
    - x6 j( p7 Q0 P
      4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:6 Q6 o6 P/ Z2 [4 B7 f# o
    </P>" x0 `/ R. a7 u- F- i# g6 |
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>1 O& N! p" x7 W9 w  q

    % M5 t% ?( b+ j" y; i7 P! U5 d<TR>4 q; M/ @+ o4 @% K% V+ b, y2 T
    <TD>  void InitGra(void)3 c% `/ ?- T$ t4 _' B* g+ R) Z! Y
      {int GD=DETECT,GM;, V' e" u  ]  i- E6 u* K
      registerbgidriver(EGAVGA_driver);
    % q8 z0 R4 \6 h& l$ l$ w# E  registerbgifont(triplex_font);' s% R3 y% D& C3 V9 T
      registerbgifont(small_font);
    7 |- ]7 O! `, Y( O6 z  registerbgifont(sansserif_font);8 l, J; j* b3 _
      registerbgifont(gothic_font);
    5 `( q' M' B1 [  initgraph(&amp;GD,&amp;GM,"");: p2 F$ |; m, C1 y6 l! N
      }</TD></TR></TABLE>
    # P$ a) S7 N; p( b<>  按照以上步骤,就能实现图形程序的独立运行</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-3 01:26 , Processed in 0.318557 second(s), 50 queries .

    回顶部