QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5469|回复: 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++语言提供了下面的函数:
    6 X9 b! F$ B. l- B7 G0 ~  b1 O  void far initgraph(int far *GD,int far *GM,char *P);
    * _- f1 k4 T* Y" L% o
    6 ]- C0 U9 C/ l1 f7 J4 r% g# c  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。% g! t9 @- T! q- M4 Q- \& K, l

    8 P& k8 X0 ^' S- S& L/ q  图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:1 s9 K3 f2 p$ J0 S5 t
      void far closegraph(void);1 A  U2 Y$ P6 U) Y- a# U1 t4 S

    ! b5 \. F0 `4 C; d$ g  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:) ]5 V: Q4 k* O, H% M

    ) T( C8 t$ a  n6 J( E  1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
    6 b: z2 Y+ p1 p  C:\TC&gt;BGIOBJ EGAVGA8 a& m1 j% x! q: v5 A* `- r7 @0 k

    ) Y8 w+ X' w: `# R4 M1 g  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
    . l6 U" ?% E& M* |, s& T! C5 `</FONT>! O" v. y& O$ ]  g8 p; g

    ! h; X9 c$ Z2 t! N7 l/ v( Y. e5 k( \% O8 D0 e; z2 N& V$ A
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>2 }9 q/ ^! Z/ ]& Q& s  N5 D* ]
    2 P( j7 b, |! M4 n# i0 L; w: P
    <TR>, E; ?  }2 e$ _7 [% H
    <TD>  C:\TC&gt;BGIOBJ TRIP) d. U8 _; P  ?1 K7 c* U4 s, v
      C:\TC&gt;BGIOBJ LITT
    * @* n' i4 g0 q' y; B/ R! O  C:\TC&gt;BGIOBJ SANS2 m3 B! L2 L( o. _
      C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>8 _% Z0 n5 `( L( }6 N4 W4 W
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
    $ l6 n. _) i& g6 U</P>. u* ^& X* Y7 f0 _0 }
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    + S6 l" i+ S7 ?! [( r5 w0 ?6 K0 [. x5 _% ]& e& K
    <TR>1 U' L. C. N% }
    <TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA/ V9 I5 r4 b9 }( ?
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
    & L, |3 [: s! I: V1 H# ~  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
    6 B, {" ]0 K7 ~! H. T8 W7 \  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
    % @  |7 H0 j5 c- b- H  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>0 e( Y' H  l% w+ N# c# N# n
    <>  也可以使用TLIB、PRJ程序代替TLINK。$ H' T# ?, b$ q" o" V" t
    3 M& g9 U% f- h, i! E
      3.在程序中调用initgraph()函数前,应加上如下语句:" M* y* h" e6 A& X
      registerbgidriver(EGAVGA-driver);! p/ m! o, x. Z" x" q0 u* x( P
    " N1 Z% d' j* p+ L+ `% U
      它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:  [$ d( D: k3 y- |' l
      registerbgifont(字体文件名);
    ' u# L) O+ |& v! ^% j4 T$ J! L$ w
    * r7 {% G! [$ ]2 s) n+ ^! q( I  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:+ ?9 X, K/ w) x, d5 Q, b
    </P>
    $ D* Q4 \% v# X; f; d  ?8 v% T<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    ) j% S% B% Z6 e! a$ c7 Z2 e8 @  J. N
    <TR>: H/ G4 Q9 \4 B6 j
    <TD>  void InitGra(void)
    ' p0 e4 ]! `5 k+ u  {int GD=DETECT,GM;
    2 l1 u; M, b, |+ ~8 B) V  @  registerbgidriver(EGAVGA_driver);+ ?0 M, Z  R6 P' D% a; Q( @0 V  _
      registerbgifont(triplex_font);
    ; K# k! }; o2 X5 {  registerbgifont(small_font);* {8 ^) C; ]2 }
      registerbgifont(sansserif_font);/ Q5 B: b3 u( V/ V* O( W0 a0 g
      registerbgifont(gothic_font);
    : _- h" m' i/ F  initgraph(&amp;GD,&amp;GM,"");' [  {' e5 j3 ~" _
      }</TD></TR></TABLE>
    4 O9 Y9 W0 q4 W( T<>  按照以上步骤,就能实现图形程序的独立运行</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-4-21 05:16 , Processed in 0.417996 second(s), 50 queries .

    回顶部