QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5499|回复: 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++语言提供了下面的函数:& l8 [- m, A+ Q+ \4 w6 k
      void far initgraph(int far *GD,int far *GM,char *P);
    0 j% H4 m. t! z3 t; _! y
    ) K* ]  a- A! h1 Y' i: [  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。7 D3 ]' l' n2 o0 s

    ! |% k* T0 I) F% x; I  图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
    ' X+ \  x, k0 I2 X& J5 M9 N  void far closegraph(void);
    2 R* o' E/ @7 J3 H' N
      l% T" o% J' v5 P  许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:
    3 ^- X2 A! B5 p# K- U* D) |# R  x6 C/ d5 I# i! u
      1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
    ( H* l8 g: w" y( n8 n  C:\TC&gt;BGIOBJ EGAVGA6 y+ K+ p+ e: b# Q" }* H
    1 F2 u$ D" n* W# K, d
      按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:% g( e) ]! l; R2 g' l
    </FONT>
    8 y6 ]9 L4 F& o$ {7 [) O* A1 n) {1 D/ U; i# j4 Y# ?

    3 q  d& G+ q) K  q( \; |. [<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>7 V1 x+ B3 n+ B

    5 B4 k/ ^; ]8 c* P0 E<TR>
    " b) h3 L( b, Q2 j, X' G<TD>  C:\TC&gt;BGIOBJ TRIP# z4 p! z/ z1 [) l
      C:\TC&gt;BGIOBJ LITT
    9 n+ Q: U: |4 Y0 V  o. m8 l* d  C:\TC&gt;BGIOBJ SANS
    ' ~+ s9 E' J" r6 I3 w# I  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>1 D4 T$ L/ l. ]  K
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:1 Y1 D+ I" C1 S6 g  t* u) w) d9 V5 X
    </P>0 z) t& x% V8 t
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>) ]  y! Z7 K4 s8 \4 y- C5 `
    / P' o  |4 P0 l  K
    <TR>; G' }$ y. h' t- u' C  R/ W
    <TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
    * N  x- `, h& _$ ]4 A  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP* @+ `/ D& Y* l) A8 q3 H
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT2 Z# r* e1 \3 f1 M# _7 G- j
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
    0 Y$ i$ Y3 O0 s, Q  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>8 v5 X7 }8 c) t. Y8 x
    <>  也可以使用TLIB、PRJ程序代替TLINK。6 ?% z) z7 W7 t% w4 A
    ; x- k2 L2 N8 d# r9 K
      3.在程序中调用initgraph()函数前,应加上如下语句:
    5 q8 O- H$ x! R# V# A& y" F$ R7 y& Q  registerbgidriver(EGAVGA-driver);
    6 F2 n6 i0 ^8 F  [5 T1 Q) r1 o7 v( j7 p$ g- {( `# ^- n
      它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:4 D; l. W( A6 V" {# g
      registerbgifont(字体文件名);0 `! q7 b+ U; F) A, P

    ' U% E3 w3 y' e0 }7 |& h1 K  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
    8 u# G% e" k, J- ?; a</P>
    - g# ^' h( V, L  B4 O" ]* Q% L<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>" E5 t+ K: ]% w/ y9 O

    % Z2 l6 Q5 w$ s<TR>% y$ h3 A! h" O3 d7 M5 l8 f
    <TD>  void InitGra(void)
    , o% D1 D7 W" ?9 K  {int GD=DETECT,GM;
    , j. q' U, o: H6 L( u) }8 X  registerbgidriver(EGAVGA_driver);
    ( j2 l+ Q# [9 ?  registerbgifont(triplex_font);
    ) b: r- s+ y' l1 O- J  registerbgifont(small_font);
    / m& X, E5 D1 {6 C5 y  registerbgifont(sansserif_font);! o9 }* j) o, s  |0 |* l" r6 p# ]
      registerbgifont(gothic_font);
    " j' N% W# `$ q4 v' F. K2 X4 ?- F  initgraph(&amp;GD,&amp;GM,"");8 s/ Q) p( z5 p, z' X& [
      }</TD></TR></TABLE>
    % ^3 P0 [- U* ^6 a<>  按照以上步骤,就能实现图形程序的独立运行</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 19:31 , Processed in 0.423731 second(s), 51 queries .

    回顶部