home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c081_7 / 1.ddi / README < prev    next >
Encoding:
Text File  |  1991-02-13  |  24.4 KB  |  654 lines

  1.                          Welcome to Borland C++ 
  2.                          ----------------------
  3.  
  4.   This README file contains important information about Borland C++.
  5.   For the latest information about Borland C++, Turbo Debugger,
  6.   TASM, and their accompanying programs and manuals, read this
  7.   file in its entirety.
  8.  
  9. TABLE OF CONTENTS
  10. -----------------
  11. 1.  How to Get Help
  12. 2.  Installation
  13. 3.  Features
  14. 4.  Important Information
  15. 5.  Testing Your Expanded Memory
  16. 6.  Corrections to the Documents
  17.  
  18.  
  19.  1. HOW TO GET HELP
  20. -------------------
  21.   If you have any problems, please read this file, the
  22.   HELPME!.DOC and other files in your DOC subdirectory, and the
  23.   Borland C++ manuals first. If you still have a question and
  24.   need assistance, help is available from the following sources:
  25.  
  26.   1. Type GO BPROGB on the CompuServe bulletin board system for
  27.      instant access to the Borland forums with their libraries of
  28.      technical information and answers to common questions.
  29.  
  30.      If you are not a member of CompuServe, see the enclosed
  31.      special offer, and write for full details on how to receive
  32.      a free IntroPak containing a $15 credit toward your first
  33.      month's on-line charges.
  34.  
  35.   2. Check with your local software dealer or users' group.
  36.  
  37.   3. Write to us at the following address:
  38.  
  39.      Borland International
  40.      Borland C Technical Support
  41.      1800 Green Hills Road
  42.      P.O. Box 660001
  43.      Scotts Valley, CA  95066-0001
  44.  
  45.      Please remember to include your serial number or we will be
  46.      unable to process your letter.
  47.  
  48.   4. If you have an urgent problem that cannot wait and you have
  49.      sent in the license agreement that came with the package,
  50.      you may call the Borland Technical Support Department at
  51.      (408) 438-5300. Please have the following information ready
  52.      before calling:
  53.  
  54.      a. Product name and serial number on your original
  55.         distribution disk.  Please have your serial number ready
  56.         or we will be unable to process your call.
  57.  
  58.      b. Product version number. The version number for Borland
  59.         C++ can be displayed by pressing Alt-Space/A.
  60.  
  61.      c. Computer brand, model, and the brands and model numbers of
  62.         any additional hardware.
  63.  
  64.      d. Operating system and version number. (The version number
  65.         can be determined by typing VER at the MSDOS prompt.)
  66.  
  67.      e. Contents of your AUTOEXEC.BAT file.
  68.  
  69.      f. Contents of your CONFIG.SYS file.
  70.  
  71.  
  72.  2. INSTALLATION
  73. ----------------
  74.  
  75.   You MUST use the INSTALL program to install Borland C++. The
  76.   files on the distribution disks are all archived and have to be
  77.   properly assembled.  You cannot do this by hand!
  78.  
  79.   To start the installation, change your current drive to the one
  80.   that has the install program on it and type INSTALL.  You will
  81.   be given instructions in a box at the bottom of the screen for
  82.   each prompt. For example, if you will be installing from drive
  83.   A:, type:
  84.  
  85.     A:
  86.     INSTALL
  87.  
  88.   -  This INSTALL handles the installation of both the compiler
  89.      and debugger and tools in one operation, and allows several
  90.      new configuration options.
  91.  
  92.   -  Note: The list of files is now contained in a separate file
  93.      called FILELIST.DOC, which will appear in the target
  94.      directory you specify during installation.
  95.  
  96.   You should read the rest of this README file to get further
  97.   information about this release before you do the installation.
  98.  
  99.  
  100.  3. FEATURES
  101. ------------
  102.  
  103.   Borland C++ includes complete support for Windows programming,
  104.   as well as big speed and capacity gains.  Here are some
  105.   important features found in this version:
  106.  
  107.  COMPILER
  108. ---------
  109.   - Windows! We now produce EXE and DLL files for Windows 3.0.
  110.  
  111.   - Protected mode versions of the Programmer's Platform and the
  112.     command-line compiler for greater capacity.
  113.  
  114.   - Precompiled header files for faster compilation.
  115.  
  116.   - A built-in assembler.
  117.  
  118.   - A full undo for the Programmer's Platform editor
  119.  
  120.   - The complete Windows API online reference is now provided in the
  121.     Borland C++ help file.
  122.  
  123.   - Included on these disks is Turbo Debugger for Windows, a new
  124.     version of Turbo Debugger that supports Windows debugging.
  125.   
  126.   - Switches to control the amount of extended/expanded memory to
  127.     be used by the compiler.
  128.  
  129.   - Switches to control various aspects of program data for
  130.     compatibility with other compilers.
  131.  
  132.   - A new utility called TRANCOPY which copies transfer items
  133.     between projects.
  134.  
  135.   - Note: Because the compiler programs in Borland C++ are named
  136.     BCC.EXE and BC.EXE, you'll need to rename them if you have
  137.     batch or make files that use those names, or you'll have to
  138.     change the macros or batch files to supply the correct name.
  139.  
  140.  TURBO DEBUGGER
  141. ---------------
  142.   - Turbo Debugger for Windows (TDW.EXE), uses "display swapping"
  143.     to allow you to debug Windows applications using one machine
  144.     and a single display.
  145.  
  146.   - TDW automatically and transparently lets you debug Windows
  147.     DLLs. There is a new module view selection dialog that allows
  148.     you to manually control this feature; press F3 with a Windows
  149.     module loaded, and F1 to find out more about the options.
  150.  
  151.   - The View/Log viewer allows logging of global and local heap
  152.     information, as well as the modules currently loaded by
  153.     Windows.
  154.  
  155.   - The View/Windows Messages viewer allows you to collect or
  156.     break on Windows messages based on window-routine identifiers
  157.     or on handles.  In addition, you can filter out specific
  158.     classes of messages to log, allowing you to view exactly what
  159.     you're interested in.
  160.  
  161.   - WREMOTE.EXE allows remote debugging of Windows applications
  162.     between two systems.  WRSETUP.EXE allows you to set up your
  163.     link speed and comm port settings from within Windows.
  164.     (Note that this is a Windows-compatible application)
  165.  
  166.   - The utilities have been modified to handle your Windows
  167.     programs. See MANUAL.TNT in your DOC directory for detailed
  168.     information about using the Turbo Debugger Utilities.
  169.  
  170.   - The File/Get Info window displays global memory information
  171.     based on banked and non-banked memory.
  172.  
  173.  TURBO PROFILER
  174. ---------------
  175.   - Allows you to view text files from within the user interface.
  176.  
  177.  
  178.  TURBO ASSEMBLER
  179. ----------------
  180.   - Two versions of Turbo Assembler have been provided. TASMX.EXE
  181.     can be run from the Windows DOS prompt, and takes advantage
  182.     of the DOS Protected Mode Interface (DPMI) that Windows 3.0
  183.     provides. This allows the assembler to take advantage of
  184.     Windows' memory management and to dramatically increase
  185.     capacity.  TASM.EXE uses standard DOS memory, and is provided
  186.     for operation in environments without DPMI support such as
  187.     DOS and the non-386 enhanced modes of Windows.
  188.  
  189.   - DPMILOAD.EXE handles loading TASM in environments where DPMI
  190.     support is a part of the operating system, such as when
  191.     running from the Windows 3.0 DOS prompt. DPMILOAD.EXE must
  192.     exist on some path within your path statement. TASMX will
  193.     automatically detect if DPMI support is present and then use
  194.     DPMILOAD to load itself. If DPMI support is not available,
  195.     (or if the DPMILOAD.EXE program is not present), TASMX will
  196.     load TASM.EXE and Turbo Assembler will run in normal DOS
  197.     memory.
  198.  
  199.  
  200.  4. IMPORTANT INFORMATION
  201. -------------------------
  202.   Be sure to look at the files in the DOC subdirectory for more
  203.   information about Borland C++. These files have additional
  204.   information about the compiler, utilities, debugger and
  205.   assembler.
  206.  
  207.  
  208.   TURBO DEBUGGER
  209.  
  210.   -  The following options have been removed from TDW.EXE (and
  211.      TD.EXE when using remote debugging):
  212.  
  213.       - File Menu
  214.           DOS Shell
  215.           Resident
  216.           Table relocate
  217.       - View Menu
  218.           Keystroke Recording
  219.       - Breakpoints Menu
  220.           Hardware breakpoint
  221.  
  222.   -  TDREMOTE/TDRF now have four different link speeds, which
  223.      will conflict with any previous versions of TDRF or TDREMOTE
  224.      you may have unless you make sure that the settings are the
  225.      same on both sides.  These link speeds also apply to WREMOTE
  226.      for Windows.
  227.  
  228.   -  TDINST now has a -w command line option which allows you to
  229.      create TDCONFIG.TDW files (or save the configuration to
  230.      TDW.EXE) for customized configurations of TDW.  You must use
  231.      the -w switch to create config files for TDW.EXE.  TDW will
  232.      not read in your existing TDCONFIG.TD files.
  233.  
  234.   -  Many of the command-line options for TDW which cannot be
  235.      used have been eliminated, such as setting overlay area
  236.      sizes, remote debugging, and the graphics display options.
  237.      Use the -? option when loading TDW to see the available
  238.      options, or consult the manual.
  239.  
  240.   -  The BCWDEMOA example is used to demonstrate the
  241.      Ctrl+Alt+Sysrq feature of TDW and is not meant to be run
  242.      directly under Windows. If you do this you will not be able
  243.      to gain control of Windows again and will have to reboot
  244.      your system. There may be problems using the Ctrl+Alt+Sysrq
  245.      feature with certain keyboards or environments.  Some
  246.      keyboards use Alt+Sysrq to activate the Sysrq scan code;
  247.      therefore Ctrl+Alt+Sysrq is not possible.  Also, there may
  248.      be problems using this Windows feature for Zenith.
  249.  
  250.   -  TDW is a text-based debugger which runs in the graphics mode
  251.      environment of Windows.  It supports only the standard
  252.      graphics display modes: CGA, EGA, VGA, and Hercules
  253.      monochrome graphics.  It does not currently support other
  254.      video modes, such as the one that supports Super-VGA.
  255.      However, the DOS versions of TD (TD.EXE, TD286.EXE, etc.)
  256.      are now capable of using this support.
  257.  
  258.   -  When you are debugging your application, TDW has control.  You
  259.      cannot use Ctrl+ESC while in TDW to gain control of Windows.
  260.      You can, however, use Ctrl+ESC normally while your program is
  261.      active and Windows has control.
  262.  
  263.   -  TDW does not load more than one symbol table at a time.  If
  264.      your program uses more than one symbol table you can load it
  265.      explicitly or, if your program makes a call to another
  266.      symbol table, TDW will load that table automatically when
  267.      tracing (F7) over the calling instruction.
  268.  
  269.   -  TDW is only able to use the -p command-line option or
  270.      configuration option to activate the mouse if Windows is
  271.      installed to use a mouse. If no mouse is specified to be
  272.      used in Windows, TDW will not recognize it either.
  273.  
  274.   -  THELP is a help menu TSR (Terminate & Stay Resident) program
  275.      meant to work in the DOS environment.  It will not work when
  276.      running TDW under Windows. The normal TDW help is still
  277.      available.
  278.  
  279.   -  If you wish to debug a DLL loaded by the Windows LoadLibrary
  280.      function, you need to use the Add DLL option of the
  281.      View|Module dialog to add this DLL to the DLLs & programs
  282.      pane. Once the DLL  has been added, make sure that you
  283.      select Yes for Load symbols and  Yes for Debug startup.
  284.  
  285.  
  286.   TURBO ASSEMBLER
  287.  
  288.   -  In order to take advantage of DPMI support feature, you must
  289.      be running Windows in 386 enhanced mode. (You may tell if
  290.      Windows 3.0 is in 386 enhanced mode by selecting ABOUT from
  291.      the Program Manager. It will tell you how much memory is
  292.      available to Windows, and it will say that Windows is in
  293.      "real mode", "standard mode", or "enhanced 386 mode". If you
  294.      are running Windows on a 386 machine, and Windows is not
  295.      currently operating in enhanced mode, please see your
  296.      Windows manual for additional details on running Windows 3.0
  297.      in enhanced mode. Enhanced mode is not available when
  298.      Windows 3.0 is run on processor less than a 386.) Also,
  299.      DPMILOAD.EXE must be somewhere in your path.
  300.  
  301.   -  TASMX is not designed to be a Windows application, so you
  302.      must enter a Windows 3.0 DOS prompt to use TASMX. Then to
  303.      use TASMX, just type TASMX wherever you would normally type
  304.      TASM. All command-line options are the same as the previous
  305.      version of TASM. When run within the Windows 3.0 DOS prompt,
  306.      TASMX will be able to use almost all the free memory in the
  307.      system, if neccessary, for assembling large programs.
  308.  
  309.   -  TASM 2.5 will still run without Windows 3.0 DPMI. If DPMI
  310.      support is not found, you must have TASM.EXE somewhere in
  311.      your path. Then if you load TASMX, it will run TASM.EXE
  312.      within the normal 640K DOS environment. Turbo Assembler will
  313.      not be able to assemble programs larger than normal without
  314.      DPMI support.
  315.  
  316.   -  We encourage you to try TASMX on all your assembler source
  317.      code, both from the normal DOS prompt and from within a
  318.      Windows 3.0 DOS prompt. TASMX should be able to handle all
  319.      programs that work properly with TASM 2.01.
  320.  
  321.   WHITEWATER RESOURCE TOOLKIT
  322.  
  323.     You can edit C header files using the Header Editor. The file
  324.     to edit may be created in any editor, or as the output of a
  325.     resource editing session. There are restrictions on syntax,
  326.     however:
  327.  
  328.     - In a C header (.H file), the Header editor supports only
  329.       #define statements defining constants with a decimal or
  330.       hexadecimal value; an error will result if you attempt to
  331.       edit a header file containing anything else except
  332.       comments. If you save the result of an edit of a file
  333.       containing comments, the comments will be removed.
  334.  
  335.  
  336.   C++ STREAMS
  337.  
  338.       This will be our last version of C++ to support version
  339.       1.2 streams (which currently requires the use of the
  340.       OLDSTRM?.LIB files.)
  341.  
  342.   EXAMPLE PROGRAMS
  343.  
  344.       When you are running any example programs that come with
  345.       .PRJ files, if you didn't use the standard directories when
  346.       you installed Borland C++ you will have to change the .PRJ
  347.       file to reflect your actual directory setup.  Do this from
  348.       inside Borland C++ with Alt-O/D.
  349.  
  350.  
  351.   LINKING C++ WITH C
  352.  
  353.       Linking C++ modules with C modules requires the use of a
  354.       linkage specification.  Prototypes for C functions within C++
  355.       modules must be in one of the following forms:
  356.  
  357.         extern "C" declaration
  358.         extern "C" { declarations }
  359.  
  360.       For example, if a C module contains these functions:
  361.  
  362.         char *SCopy(char*, char*);
  363.         void ClearScreen(void)
  364.  
  365.       they must be declared in a C++ module in one of the
  366.       following ways:
  367.  
  368.         extern "C" char *SCopy(char*, char*);
  369.         extern "C" void ClearScreen(void);
  370.  
  371.       or
  372.  
  373.          extern "C" {
  374.             char *SCopy(char*, char*);
  375.             void ClearScreen(void);
  376.          }
  377.  
  378.       Failure to do so will result in "Undefined symbol" errors
  379.       during link. For further examples, see the standard header
  380.       files.
  381.  
  382.  
  383.   IMPORTANT NOTES
  384.  
  385.   - The default extension for source files is .CPP; that is, if
  386.     you enter
  387.  
  388.        BCC -c test
  389.  
  390.     the compiler will search for test.cpp, and give an error if a
  391.     file of that name cannot be found. If you want to have the
  392.     command-line compiler assume a .c extension and C language
  393.     source, use the command-line option -P-c. For more information,
  394.     see Chapter 6, "The command-line compiler", in the User's Guide.
  395.  
  396.   - Borland C++ only supports Protected Mode Windows target
  397.     files. Make sure to use the /t option when using the Resource
  398.     Compiler if you want to enforce Protected Mode usage.
  399.  
  400.   - Functions that return structures now take a hidden parameter
  401.     that contains the address where the returned structure is to
  402.     be placed.  If you are writing assembler code to link with C
  403.     code you must be sure to allow for this extra parameter.
  404.  
  405.   - When debugging a mouse application the Options|Debugging|Display
  406.     Swapping option should be set to "Always" for best results.
  407.  
  408.   - TEMC will not allow a macro to contain multiple commands that
  409.     return exit codes.
  410.  
  411.   - Example 2 for the signal() function in the Reference Guide uses
  412.     an extension to signal() that is not supported in C++, so the
  413.     example will not compile as a C++ program.
  414.  
  415.   - If a directory contains only one project file, invoking
  416.     Borland C++ without any parameters will open that project. 
  417.     If this behavior is not desired, a second "dummy" project
  418.     file must be placed in that directory or the current project
  419.     file must be removed.
  420.  
  421.   - Note that the Generate COMDEFs choice under
  422.     Options|Compiler|Code Generation and the -Fc command-line
  423.     option are only supported in the C language. Linker errors
  424.     will result if you attempt to use a communal variable in C++.
  425.  
  426.   - When linking in libraries that have COMDEFs, be sure to link
  427.     in at least one .OBJ file that contains a COMDEF. The TDUMP
  428.     utility can be used to determine if a .LIB file contains a
  429.     COMDEF.
  430.  
  431.   - The macros min() and max() are not defined when stdlib.h is
  432.     compiled as C++ (to allow their use in 3rd party libraries,
  433.     etc.).
  434.  
  435.   - When using Brief with THELP, make sure to use Brief's -p
  436.     switch to insure that the thelp window will be visible.
  437.  
  438.   - Note that SYMDEB creates .SYM files for use in debugging; Borland C++
  439.     creates .SYM files for pre-compiled headers. They are not compatible
  440.     and collisions should be avoided by setting the name of the pre-compiled
  441.     header file (using -H=filename).
  442.  
  443.   - If you have an application that uses multiple DLLs at least one of
  444.     which references another, you need to obey the following rules:
  445.  
  446.     1. The module names of imported entries specified in module definition
  447.        files should be in lower case.  This applies to the name specified
  448.        after the LIBRARY keyword for DLLs which export the entries, as well
  449.        as the module names supplied in the IMPORTS section.
  450.  
  451.        For example:  
  452.  
  453.            LIBRARY mydll
  454.        not  
  455.            LIBRARY MYDLL
  456.  
  457.  
  458.            IMPORTS
  459.                mydll.1
  460.        not  
  461.            IMPORTS
  462.                MYDLL.1
  463.  
  464.     2. Enable a case-sensitive link using /c for the standalone linker
  465.        (TLINK), or the Options|Linker|Case Sensitive Link option in the
  466.        Programmer's Platform.
  467.  
  468.  
  469.  5. TESTING YOUR EXPANDED MEMORY: EMSTEST.COM
  470. ---------------------------------------------
  471.  
  472.   Included with Borland C++ is a program to test your Expanded
  473.   Memory hardware and software. If you have problems using
  474.   Borland C++ with your EMS, type EMSTEST at the DOS prompt and
  475.   follow the instructions.
  476.  
  477.  
  478.  6.  CORRECTIONS TO THE DOCUMENTS
  479. ---------------------------------
  480.  
  481.   Getting Started
  482.   ---------------
  483.   Pg. 3    The manual says that Borland C++ requires DOS 2.0 or higher.
  484.            It should say DOS 3.0 or higher.
  485.  
  486.   Borland C++ Programmer's Guide
  487.   ------------------------------
  488.   Pg. 168  _WINDOWS shown in the last heading should be _Windows.
  489.  
  490.   Borland C++ User's Guide
  491.   ------------------------
  492.   Pg. 122  The section on Dynamic Link Libraries should include
  493.            the note that DLLs written in C++ are only supported
  494.            in the compact and large memory models; this
  495.            restriction does not apply to DLLs with C language
  496.            source.
  497.  
  498.   Pg. 158  In the first paragraph it says you need at least 576k of
  499.            extended memory. The correct amount is 320k.
  500.  
  501.   Pg. 159  Note that values of at least 120 should be specified in
  502.            the TKERNEL kilos parameter.
  503.  
  504.   Pg. 260  Several TLINK error messages are not included; here is a
  505.            list of those messages and their meanings:
  506.  
  507.   - Debug info option ignored for .COM files
  508.  
  509.      Borland C++ does not include debug information for .COM
  510.      files.
  511.  
  512.   - Overlays ignored in new executable image
  513.  
  514.      This error occurs if you attempt to link an Windows program
  515.      with the /o option on.
  516.  
  517.      Windows executables can't be overlaid, although, with
  518.      discardable code segments, you should be able to achieve a
  519.      similar effect.
  520.  
  521.   - Relocation item exceeds 1MB DOS limit
  522.  
  523.      The DOS executable file format doesn't support relocation
  524.      items for locations exceeding 1MB.
  525.  
  526.      Although DOS could never load an image this big, DOS extenders
  527.      can, and thus TLINK supports the generation of images greater
  528.      than DOS could load.
  529.  
  530.      Even if the image is loaded with a DOS extender, the DOS
  531.      executable file format is limited to describing relocation
  532.      items in the first 1MB of the image.
  533.  
  534.   -'filename' ('linenum'): Duplicate internal name in exports
  535.  
  536.      Two export functions listed in the EXPORTS section of the
  537.      module definition file defined the same internal name.
  538.  
  539.   -'filename' ('linenum'): Duplicate internal name in imports
  540.  
  541.      Two import functions listed in the IMPORTS section of the
  542.      module definition file defined the same internal name.
  543.  
  544.   - 'filename' ('linenum'): Duplicate ordinal 'number' in exports
  545.  
  546.      TLINK encountered two exports with the same ordinal value.
  547.  
  548.      Check the module definition file to ensure that there are no
  549.      duplicate ordinal values specified in the EXPORTS section.
  550.  
  551.      If not, you are linking with modules that specify exports by
  552.      ordinals and one of two things happened:
  553.  
  554.        - two export records specify the same ordinal, or
  555.        - the exports section in the module definition file
  556.          duplicates an ordinal in an export record.
  557.  
  558.   - Segment alignment factor too small
  559.  
  560.      This error occurs if the segment alignment factor (set with
  561.      the /A option) is too small to represent the file addresses
  562.      of the segments in the .EXE file.
  563.  
  564.      This error only occurs when linking for Windows.
  565.  
  566.   - Segment too large for segment table
  567.  
  568.      This error should never occur in practice.
  569.  
  570.      It means that a segment was bigger than 64K and its size
  571.      can't be represented in the executable file.
  572.  
  573.      This error can only occur when linking for Windows; the
  574.      format of the executable file used for Windows does not
  575.      support segments greater than 64K.
  576.  
  577.   - Invalid size specified for segment alignment
  578.  
  579.      This error occurs if an invalid value is specified for the /A
  580.      option.
  581.  
  582.      The size specified with /A must be an integral multiple of 2
  583.      and less than 64K; common values are 16 and 512.
  584.  
  585.      This error only occurs when linking for Windows.
  586.  
  587.   - 'filename' ('linenum'): Duplicate external name in exports
  588.  
  589.      Two export functions listed in the EXPORTS section of a
  590.      module definition file defined the same external name.
  591.  
  592.      For example:
  593.  
  594.        EXPORTS AnyProc=MyProc1 AnyProc=MyProc2 - Automatic data
  595.        segment exceeds 64K
  596.  
  597.      The sum of the DGROUP physical segment, local heap, and stack
  598.      exceeded 64K.
  599.  
  600.      Either specify smaller values for the HEAPSIZE and STACKSIZE
  601.      statements in the module definition file, or decrease the
  602.      size of your near data in DGROUP.
  603.  
  604.      The map file will show the sizes of the component segments in
  605.      DGROUP.
  606.  
  607.      Use the /s TLINK command-line option to find the module.
  608.  
  609.   - Debugging information overflow; try fewer modules with debug
  610.     info
  611.  
  612.      Too many modules containing debugging information are
  613.      included in the link.
  614.  
  615.      The debugging information executable file specification uses
  616.      16-bit fields for many counts. This error message indicates
  617.      that one of the count fields have overflowed.
  618.  
  619.      To exclude some modules with debug information from the link,
  620.      either:
  621.        - use the /v+ and /v- stand-alone linker options, or
  622.        - turn on the Exclude Debug Information option
  623.  
  624.   - Limit of 254 segments for new executable file exceeded
  625.  
  626.      You have reached the limit of segments that can be specified
  627.      by the New Executable file format.
  628.  
  629.      Only 254 segments can be represented in Windows EXEs and
  630.      DLLs.
  631.  
  632.      To reduce the total number of segments to below 254, turn on
  633.      the Pack Code Segments option to combine segments.
  634.  
  635.   - Imported references from VIRDEFs not supported
  636.  
  637.      TLINK does not support offset fixups to imported names when
  638.      those fixups are associated with VIRDEFs.
  639.  
  640.      This situation is not likely to occur. However, if it does,
  641.        - use the -Vs command-line option, or
  642.        - set C++ Virtual Tables to Local in the IDE.
  643.  
  644.      VIRDEFs are used for C++ virtual tables and inline functions
  645.      which, for debugging purposes, are pulled out-of-line.
  646.  
  647.   - Invalid size specified for segment packing
  648.  
  649.      You have specified an invalid size for the code segment
  650.      packing limit. The default is 8192; legal values are from 1
  651.      to 65536.
  652.  
  653.  
  654.