readme

来自「汇编&c语言code」· 代码 · 共 518 行 · 第 1/2 页

TXT
518
字号
      or

         extern "C" {
            char *SCopy(char*, char*);
            void ClearScreen(void);
         }

    Failure to do so will result in "Undefined symbol" errors
      during link. For further examples, see the standard header
      files.


  TURBO DEBUGGER

  - You cannot set a window message breakpoint by using a window
    handle in an ObjectWindows application. You can, however, set
    window message breakpoints with ObjectWindows applications:
    enable ObjectWindows support (use TDWINST and choose
    Options|Source Debugging|OWL Window Messages), then use
    window object names to set message breakpoints.

  - The first time a program is run under TDW, mouse messages are
    processed normally. However, on every subsequent execution of
    that program, you must press a key on the keyboard before
    mouse messages can be processed.


  Super VGA support
  =================

  TDW handles most of the popular 2, 4, and 16-color high-
  resolution Super VGA modes. If your card isn't supported
  correctly, or if you want to debug in a 256-color mode, you'll
  need to use a special Super VGA DLL.

  Currently, the following DLLs are supplied with your language
  compiler to support these SVGA cards and modes:

    TSENG.DLL  (TSENG ET-3000 /ET-4000 based cards)
       640x480x256
       800x600x256
       1024x768x256


    ATI.DLL  (ATI VGA Wonder card)
       640x480x256    (See the NOTE below)
       800x600x256

  To use a Super VGA DLL, copy the appropriate DLL file into the
  directory that contains the TDW executable (usually the BIN
  subdirectory of your language compiler directory) and rename it
  to TDVIDEO.DLL.

  TDW, upon loading, looks for TDVIDEO.DLL in the same directory
  that harbors TDW.EXE. If it finds the file, TDW accesses the
  DLL as it's needed. TDW makes calls to the DLL to handle the
  entire video screen switching context. The DLL accomplishes the
  screen switching by allocating a buffer as it gets loaded.
  Graphic screen contents are then saved to this buffer as TDW
  enters text mode. The DLL restores the graphics screen from
  this buffer as TDW exits text mode. Memory allocated for the
  buffer is freed when the DLL is unloaded.

  If there is an error loading TDVIDEO.DLL, or if the DLL doesn't
  support the selected card or mode, TDW will report the error in
  a Windows dialog box. When this happens, TDW will unload
  TDVIDEO and exit. If this situation occurs, delete TDVIDEO.DLL,
  or select a mode that is supported by the DLL.

  If you're debugging an application that's been built with
  EasyWin, you may see incorrect screen painting as you step over
  lines of code that make calls to STDIO functions. In this case,
  edit the TDVIDEO.INI file and set the Int2FAssist option to
  "yes" (see the NOTE below).

  NOTE: The ATI mode 640x480x256 and EasyWin applications may
    require some special handling. An option called Int2FAssist
    in the TDVIDEO.INI file allows this mode to work correctly on
    most systems. The behaviour is as follows: When you set
    "Int2FAssist=yes", TDVIDEO makes Windows tell all sub-windows
    on the screen to re-paint themselves as the DLL is loaded.
    This allows the user screen to be viewed when Stepping,
    Tracing, or Running your application. It will not, however,
    switch to the user screen when you press <Alt-F5> since TDW
    is still in control (it doesn't allow Windows to process any
    messages). If you also set "SaveWholeScreen=yes", then <Alt-
    F5> will show the user screen (TDVIDEO will now copy the
    screen for you). The drawback to enabling SaveWholeScreen is
    that it will take longer to Step or Trace if TDW needs to
    switch back to the user screen for that particular
    instruction. Also, extra messages are getting passed to your
    application that normally would not be passed. This may
    effect the debugging of certain pieces of code (like finding
    a bug in an owner-draw procedure). In these cases, you will
    not want to use this video mode.


  TDVIDEO.INI
  -----------

  You can create the file TDVIDEO.INI with any ASCII text editor.
  This file is used to control how TDVIDEO.DLL functions.
  TDVIDEO.INI must be located in WINDOW's main directory (usually
  C:\WINDOWS). The options in TDVIDEO.INI are handled by the DLL
  itself and are therefore subject to change with newer versions
  of the DLLs. The DLLs use the following options, written in any
  order, under the heading [VideoOptions]:

    SaveWholeScreen --    default = 'no'
    Int2FAssist     --    default = 'no'
    DebugFile       --    default = ''  (no logging will occur)

  The SaveWholeScreen and Int2FAssist can be set to either 'yes'
  or 'no'. DebugFile can be either blank, or it can be set to a
  specific filename.

  *** SaveWholeScreen ***

    This option, normally set to 'no', determines whether the
    entire screen (512k - 64k from 8 planes) will be saved (the
    entire graphics screen is cleared when switching to it) or if
    only the top 32K of planes 0 through 3 will be saved (the
    entire screen is NOT cleared when switching modes.)

    Saving the whole screen is rarely needed, but is provided in
    case you're using a nonstandard card that needs the whole
    screen to be saved.

  *** Int2FAssist ***

    This option, normally set to 'no', tells TDVIDEO, to make a
    special Int 2F call before switching video modes. This call
    tells the current Windows screen driver (VGA.DRV for standard
    VGA mode) what's happening. The desired side-effect of this
    call is to make Windows tell all of its child windows to re-
    paint themselves. This option is provided only for support on
    an ATI Super VGA video mode and for applications built using
    EasyWin (see NOTE above). However, be aware, that this option
    can affect the other supported modes if it's enabled (use
    this option only if absolutly necessary).

  *** DebugFile ***

    TDVIDEO.DLL normally doesn't save any debugging information.
    If you're having problems using a special DLL, the DebugFile
    option can be used to specify the path and filename of a log
    file. Information logged to this file can be used if you need
    to contact Borland's Technical Support. Information logged
    consists of the Date/Time, the version of the DLL, the name
    of the Windows screen driver that is currently in use, the
    state of all .INI options, and a listing of all the calls to
    the DLL's functions.

    For example, if you want your DLL to save the entire screen
    and log information to a file named C:\WINDOWS\TDVIDEO.LOG,
    create a file called TDVIDEO.INI in the WINDOWS directory
    that contains the following commands:

      [VideoOptions]
      SaveWholeScreen=yes
      DebugFile=c:\windows\tdvideo.log


  CLASS LIBRARY

  - If you used the add(), addAt(), or getItemsInContainer()
    member functions of the Array class in Turbo C++ for Windows
    2.0 applications, note that their behavior has changed
    slightly. The following rules apply to these and related
    functions:

      1. add() will insert its argument at the lowest available
         location in the Array.  This location is known as the
         "insertion point".

      2. detach() will remove its argument from the Array, and if
         that Object is located below the insertion point, it
         will move the elements above the Object being removed
         and below the insertion point down one position, so that
         the elements below the insertion point remain
         contiguous.  The insertion point, of course, moves down
         one.

      3. if the location specified in a call to addAt() is below
         or at the insertion point, the elements above the
         specified location and below the insertion point are
         moved up one position, and the Object is inserted.  The
         insertion point moves up one.

      4. if the location specified in a call to addAt() is above
         the insertion point, the Object is inserted at that
         location, replacing any Object that may have been placed
         there previously.

      5. getItemsInContainer() returns the number of elements
         below the current insertion point.  If you use addAt()
         to add elements above the insertion point, they will not
         affect the value returned by getItemsInContainer(). 
         This is a change from the behavior in the previous
         version of the class library.

  - Only the small and dynamic link class libraries are supplied
    in this release. If you need other models, use the project
    files supplied under the CLASSLIB\OBJS subdirectories to
    build them. For instance, to build a medium model library
    without templates, create a directory called M under
    \CLASSLIB\OBJS, and copy the TCLASSL.PRJ file from the L
    directory to a file called TCLASSM.PRJ in your new M
    directory. Then load TCW.EXE, used Project|Open to open
    TCLASSM.PRJ, and change Options|Compiler|Code generation|
    Model to Medium.

  OWL

  - You must rebuild the class libraries in the appropriate model
    for the intended OWL model if they don't already exist - see
    paragraph above.

  - Note that you must use the TWindow member function AssignMenu
    to assign a window's Attr.Menu member and to load a menu for
    that window.

 6.  CORRECTIONS TO THE DOCUMENTS
---------------------------------

ObjectWindows User's Guide
--------------------------
  Chapter 2, "Stepping through Windows"
  -------------------------------------
    Page 22
    -------
      The sentence that begins "These libraries are located in the library 
      directories listed in the following table..." should instead read
      "Table 2.2 lists the file names of the static ObjectWindows library 
      and static container class library for each supported memory model."

  Chapter 11, "Dialog objects"
  ----------------------------
    Page 151
    --------
      In the TSampleWindow::GetName fragment shown, a line is in error. 
      The line that begins
         if ( ExecDialog(new TInputDialog(this...
      should read
         if ( GetApplication()->ExecDialog(new TInputDialog(this...

  Chapter 12, "Control objects"
  ----------------------------
    Page 158+
    ---------
      Although it doesn't specifically state so, TListBox and its member
      functions can be used with both single- and multiple- selection
      list boxes.





⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?