QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5506|回复: 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++语言提供了下面的函数:
    ( h% h! H* p& X9 A) q% e- F  void far initgraph(int far *GD,int far *GM,char *P);
    " P3 N, Y& p7 T7 s" {
    9 ?- b3 y  X* r! j  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。
    # a* g- ^! j7 D8 E8 i- m9 y/ {6 d  \; O' v  B  o% D
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:* M% Y, K$ r  x; C9 J2 c5 v2 {
      void far closegraph(void);3 L; A' t# A4 P- Y

    ! K( L) Y; M* K% h$ ]& W% k6 u  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
    3 H; N6 f" O% R* {& l$ _6 d! t: O, I: v* J+ f! X% p3 \+ F7 N
      1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:- b5 |4 U; L9 I, H7 @
      C:\TC&gt;BGIOBJ EGAVGA2 b# @, g: j" S

    6 X4 H% U! T% `+ I$ Y  按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:& W' E4 Q  j# W- b* f6 p, a0 i
    </FONT>, J( T" g" A+ a) L8 o

    & o1 W. G5 J0 L# ?! J9 C0 Q5 V" m0 d
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>9 K- V. p9 G% K  ~

    1 n4 V+ d# Z' x; h- S7 g<TR>
    ; D7 U6 n+ s/ v) A1 w  M<TD>  C:\TC&gt;BGIOBJ TRIP  U. `4 D7 H( ^2 n$ E3 s! i
      C:\TC&gt;BGIOBJ LITT
    3 U5 M4 Y: N5 ]  {' b' {  C:\TC&gt;BGIOBJ SANS! I- M$ h9 Z( v
      C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>
    - A& ]: B7 N" d% p<>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:+ \& I. C- p3 }2 F2 j  G& B( ^: C
    </P>: G7 e# B' F/ f: N' G! c
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    1 \, b2 d4 J5 {2 z* H3 v+ W" [  ?* b- M+ g1 J  r7 b; G
    <TR>( J3 ?$ i; L' Z5 [3 c; j% O& o' ^
    <TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA$ E0 E$ W" d, y6 I4 J
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
    . h0 A8 _" z5 B9 Q, G  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
    ) `7 Z7 A! I! z$ P; ?  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS+ k4 l2 O: Z& J9 a
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
      |( c5 b7 p3 u! f<>  也可以使用TLIB、PRJ程序代替TLINK。# ]/ N" e& l3 A. V

    6 \0 w* A# N: R5 P  3.在程序中调用initgraph()函数前,应加上如下语句:
    , r5 y- Z0 h. j; C0 s  registerbgidriver(EGAVGA-driver);. e7 U2 s& U" F
    + }  S4 M- O0 o: j6 o
      它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
    ; ~- N1 }4 N: y, x7 q  registerbgifont(字体文件名);
      z; ^5 ~$ W' q; t; S
    : A, n  `9 _% O! @9 ~4 _! W  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
    0 ^' u4 J7 t2 R* v8 f5 l7 N</P>( H) ^7 J" @9 j% ]8 O
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    $ @5 R; K* W% {; l' m# u. t% i
    # f; ^; J9 B+ W9 l) p<TR>. K  O8 r4 h+ f  l7 i8 D
    <TD>  void InitGra(void)
    ' M4 Q* {, X0 F1 |& j* Z  {int GD=DETECT,GM;- `8 q+ l; A$ }/ `! r7 H
      registerbgidriver(EGAVGA_driver);* a+ H0 Y2 p" x* ~0 z: |- g0 r  {
      registerbgifont(triplex_font);
    ( ], j0 [6 X/ j1 d# p% W7 ]5 z( g  registerbgifont(small_font);8 Y5 J, K$ {# P) h4 o8 L
      registerbgifont(sansserif_font);
    2 e7 E# T" v: O  registerbgifont(gothic_font);9 C) o# Q2 b8 R
      initgraph(&amp;GD,&amp;GM,"");4 R# [9 I0 o4 K  \, P- R! ]& f
      }</TD></TR></TABLE>
    , B, v5 d% f. U# K0 z% M7 G( t; M<>  按照以上步骤,就能实现图形程序的独立运行</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-2 20:32 , Processed in 0.265680 second(s), 51 queries .

    回顶部