QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5494|回复: 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++语言提供了下面的函数:
    : q9 E! ^( x; M) n3 R% O- r; u  void far initgraph(int far *GD,int far *GM,char *P);
    ) Q- p( D4 p( |: D! d# j
    ( Z( \( w% A- a2 |' }  d# B  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。# F" G. Z5 F, |/ x

    $ B. O3 M2 D0 N+ c; z  图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
    & X- R2 O! t$ g! P" a  void far closegraph(void);, j- @4 i+ I) B2 {! B
    ' a/ @7 W1 j# ~8 U* Q
      许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
    ( J9 w! ~; y+ a8 i1 y. C
    : a1 t4 v' I/ x! F& q1 N+ L  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:/ e- I# y: ^" B5 R: Y4 d
      C:\TC&gt;BGIOBJ EGAVGA
    2 W5 e+ A" ~/ X: Y/ O
    + p: S+ ^6 p0 u9 w9 Q$ A% `' q  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:$ \2 i& K  F+ V  p! Z( n
    </FONT>% K  X3 _! L+ G+ N  X! I
    $ U. c) ^3 c! V4 _+ \3 U* `, ?

    7 \4 d- o3 i  U9 ^- f+ J+ [6 E$ c<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>' O8 K9 q; A+ N7 e
    , I6 Q: c; z3 d/ D
    <TR>
    # Y3 O- b' K- u* C. _# y8 s' h2 e<TD>  C:\TC&gt;BGIOBJ TRIP
    9 b- W# }) B% s$ q  C:\TC&gt;BGIOBJ LITT
    & S, h, j; c9 e3 r) n* ?4 u  C:\TC&gt;BGIOBJ SANS; I5 {/ P' J+ u& q
      C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>
    4 P- H7 P! W0 {$ L$ N+ |<>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
      B# q: u' W- F% k8 {* j$ b0 A</P>) L( T6 s. n; m* N% K2 F
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>8 N: g1 m$ a5 y, o

    / ~/ M4 A! W9 C+ G: ?<TR>2 E/ w) A- W4 K, W' f
    <TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA% K/ \0 K/ z: X1 d4 @
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
    ! Y2 H+ b" D' ~  ?9 j  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT1 k" W$ ^0 e0 |+ b2 L, n8 n* ^
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS. O: |3 G( e! A; |1 `/ ]0 h
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>* D) D- m, ^" ^
    <>  也可以使用TLIB、PRJ程序代替TLINK。
    + P2 G9 Z+ q% N0 `9 u! j6 k+ t$ d5 E# _
      3.在程序中调用initgraph()函数前,应加上如下语句:: o3 U( r2 z. K
      registerbgidriver(EGAVGA-driver);) ]+ [7 y* V0 X, h( L

    + I2 b* s+ o, T  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:7 X- o; W# e% }- }- q1 {
      registerbgifont(字体文件名);
    2 |& x8 f2 \3 N  ^9 G! }' b  m7 s- K/ g& E8 V4 H2 T
      4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
    ( F0 W, ~/ \* M2 m</P>0 X2 S8 v& E; _7 i8 V
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>  c* n: f+ s8 A2 Y- k1 x

    4 l: R% d1 G1 [% k8 U1 a) z8 M<TR>8 t, O" J/ S% U  T$ M
    <TD>  void InitGra(void)
    1 C# M% G9 ^6 r$ S. K  {int GD=DETECT,GM;. @5 H  E3 V- x2 y
      registerbgidriver(EGAVGA_driver);
    % _& R- A4 W! Z& c! w5 H  registerbgifont(triplex_font);- \& L; ~& s& ]
      registerbgifont(small_font);! ^& z" H( H8 k# L
      registerbgifont(sansserif_font);6 e" ~2 }4 \% U) l
      registerbgifont(gothic_font);* J7 k! l/ T7 \# g# U  F: i9 q4 u
      initgraph(&amp;GD,&amp;GM,"");
    2 T; b- u  ]+ p4 W. `  }</TD></TR></TABLE>
      g8 G( E" Z; ?: N' \4 a$ 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-19 07:50 , Processed in 0.426186 second(s), 50 queries .

    回顶部