QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5495|回复: 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++语言提供了下面的函数:3 u1 p1 x* k' r' u& K
      void far initgraph(int far *GD,int far *GM,char *P);# ]" I8 B$ C( P6 m- W2 h1 m7 [) P
    ( U; X6 l, S3 N  _
      其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。2 o9 D5 p! j, z* M0 a$ B* N/ L
    : i. f9 {) ]" ?& y
      图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:, M2 Z- |% o3 p, s% M
      void far closegraph(void);( D7 U0 W$ b% V& m1 r& p

    + i1 ]. x4 z8 ?* k  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:8 _) M0 V) b5 \8 q
    ! f  @+ M$ d# T2 m. e* K- G
      1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
    / Z: }  Q" Q1 I6 ?% g- w7 [9 Z5 B. P" l  C:\TC&gt;BGIOBJ EGAVGA
    % `+ p/ h2 @* G# ^% |8 p/ G" R4 O& `+ r4 f' m- a, t3 o
      按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:
    : s( q7 _' @: p, A- r</FONT>
    ( i; [$ G5 U' I* p" ?3 [8 Q* x0 P. }2 h4 o( o  x/ [
    : L4 E* T) J+ O
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    : e$ G* M, [$ F  O9 g) X* T
    6 P2 [) S% q' C5 p7 w5 i$ ]( `<TR>, l1 v. U" R8 r- f3 d( H
    <TD>  C:\TC&gt;BGIOBJ TRIP; w! B: e. |  w; d* p; ]
      C:\TC&gt;BGIOBJ LITT' U: x* t: n+ E2 g
      C:\TC&gt;BGIOBJ SANS4 r* A+ n* i1 F/ O; Q
      C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>
    ) l$ x0 J' F( t; ]4 Z" O2 J* f' n, f<>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
    , w" b4 W2 A! i% o5 {- W; B</P>
    " T# u2 @0 I; h0 H<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    / n+ B* B6 b8 a( ], [  X1 ]* s* a, S0 z3 _3 N- z: I
    <TR>( W8 W' x- I# J1 @7 h" ?
    <TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA3 `! I- E9 ~& l
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP% t* M5 D8 h6 x! z% x
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
    6 x9 e" X$ |2 t5 J$ l  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS7 w$ \$ e" j$ J6 \# p
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
    & w9 i0 K8 T4 E# L0 U0 w<>  也可以使用TLIB、PRJ程序代替TLINK。* @0 N  @% @9 m; q+ ?
    # r6 o" |$ A. I; X- S: Y8 F1 b$ L- S! g4 \
      3.在程序中调用initgraph()函数前,应加上如下语句:  T" J1 ^4 u# C8 U4 t* n! K  b
      registerbgidriver(EGAVGA-driver);
      v9 F/ |9 s/ s$ t7 ?/ _0 m2 l& i$ m) ?
    ( Y, Z1 c+ y2 _  {4 x7 _5 P  它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:. j# w2 U* v4 |8 J* ^$ Y/ k  L
      registerbgifont(字体文件名);
      J: l/ l1 A* M: O0 L/ \  |4 ?
    $ J9 K3 ~2 `! Y0 I: @  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
    / D- b4 X) c; C& A, o</P>
    , U3 t! q- o' G<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    1 e) Z) f% o  [7 y+ Y% o+ W! D; W7 i$ B
    <TR>
    ( f6 i: l  X7 e) }) [# s<TD>  void InitGra(void)$ l' S$ ?' x) d3 Z7 j4 H8 u
      {int GD=DETECT,GM;
    . g3 ~  ]4 @4 B2 Z  registerbgidriver(EGAVGA_driver);: s4 r+ n( \/ {( ^. F
      registerbgifont(triplex_font);
    ' B/ f0 S  ^8 i  registerbgifont(small_font);4 D' [2 v& n7 z+ o7 J$ M
      registerbgifont(sansserif_font);
    . f* N+ d& o# T( F  L  registerbgifont(gothic_font);- U: R3 I/ V7 b* m
      initgraph(&amp;GD,&amp;GM,"");
    4 R& T) L" I) r4 @% v# L! q  }</TD></TR></TABLE>
    % g4 |8 E) a8 ~* B9 i3 x- 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-7-19 10:25 , Processed in 0.972599 second(s), 51 queries .

    回顶部