QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5081|回复: 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 q( ]6 b/ N) L, _
      void far initgraph(int far *GD,int far *GM,char *P);: o8 I8 A; Q& T4 }' j' Q

    & j0 N5 ~6 a& p, X* B; ^  其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。8 S9 _9 U! C; h- D6 f% G! K# i! z

    / Y  W# o% t7 a9 X, j2 p4 o  图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:& y; v/ L5 H5 ^7 |
      void far closegraph(void);* u0 g( s0 F4 t# C6 R  u3 M# W
    * f) k* S7 P  R
      许你经常在用C/C++语言编写一些图形程序,但是总不能脱离C/C++语言环境独立运行,我们怎样来解决呢?下面是实现图形程序独立运行的具体步骤:6 o; j: r( c  @" u) t$ `) e0 _
    ! e9 x) z: L% K4 a" ?2 o& X
      1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
    ' y$ E: L( C# m- M  L$ ]  C:\TC&gt;BGIOBJ EGAVGA
    / j6 c$ n" |+ }- q6 O) H( ~9 i2 J7 @$ J, j6 W
      按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:; b1 J: C& V1 u7 R7 V+ O1 v) N
    </FONT># g2 |& G0 w* O* a

    + h4 c' X, ]. z2 z4 n! t  {8 t+ \& [" F8 `& j, x7 d4 \
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>7 c2 ~, Y( H% ^& ~! P

    # m% H: G3 P; v, Y6 w<TR>
    % f" ~$ J! q3 L5 u! F! b8 ~* \3 D<TD>  C:\TC&gt;BGIOBJ TRIP* s* N. ?: H# H: o% [
      C:\TC&gt;BGIOBJ LITT2 ?/ J- A& T5 \% H: S8 r
      C:\TC&gt;BGIOBJ SANS
    ! M# q  O" J/ m. z( ?6 C  C:\TC&gt;BGIOBJ GOTH</TD></TR></TABLE>3 x: B2 e: Z: A+ r
    <>  2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:
    . D# k) F7 }' Y3 n( k</P>
    2 ?8 J, {% t) Z<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
    " `, ?# T, N7 |3 \9 b0 v- I
    + z# n5 U* u2 H<TR>
    2 s; \; \  U! p; o( Q- |- w<TD>  C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA/ d# ~0 l4 R3 N8 ]. c
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP- [$ N0 {7 s' {  I' D
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+LITT! m+ ?6 g+ ]  ~+ y
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+SANS. G! i- N) |  O0 z/ F
      C:\TC&gt;TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH</TD></TR></TABLE>
    * C' b# E& o+ k* m* y<>  也可以使用TLIB、PRJ程序代替TLINK。, m- j2 |" G; v2 f* [/ t8 F1 b
    ) G9 K* o+ }  p
      3.在程序中调用initgraph()函数前,应加上如下语句:9 m; T4 X2 d! }5 o4 t
      registerbgidriver(EGAVGA-driver);& `2 P, h: l& e# p
    ; M/ l8 _# ?3 I# l# v
      它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
    . w) ^; Q3 [9 V* A6 c* K  registerbgifont(字体文件名);
    2 M4 o! L( u& H8 c" s, [' l
    + @$ P& c! q2 q3 s) v  4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:
    , o4 l- Z6 h' k$ _</P>  S% X# {& W4 o1 W1 R
    <TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>* E. U1 a7 X# y

    $ u1 W. c' U2 s2 N! F<TR>
    4 Q$ ^' \% A! V8 A6 M/ k( D  M<TD>  void InitGra(void)3 W1 o0 |! ~  B0 `
      {int GD=DETECT,GM;
    , f8 v) f. [6 V# X" F+ C1 U4 E4 X  registerbgidriver(EGAVGA_driver);
    6 \! @+ |" o% m; ?6 n  registerbgifont(triplex_font);
    & n- _7 ^+ o4 Z- f8 ?; z8 S  registerbgifont(small_font);, ^5 Q2 B! \6 U* `  I
      registerbgifont(sansserif_font);! s$ w4 t& c3 a6 m; K  Z- O6 {
      registerbgifont(gothic_font);3 l6 m: v; K  a
      initgraph(&amp;GD,&amp;GM,"");% u; ^% p- u2 E% z0 d' I/ g/ m
      }</TD></TR></TABLE>
    * t$ }3 B  y- U7 ]<>  按照以上步骤,就能实现图形程序的独立运行</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, 2025-8-1 18:25 , Processed in 1.193926 second(s), 50 queries .

    回顶部