Welcome to Turbo C ++ --------------------- This README file contains important information about Turbo C++. For the latest information about Turbo C++, the accompanying programs, and the manuals, read this file in its entirety. TABLE OF CONTENTS ----------------- 1. How to Get Help 2. Installation 3. Features 4. Important Information 5. Testing Your Expanded Memory 6. Corrections to the Documents 7. TCTOUR 1. HOW TO GET HELP ------------------- If you have any problems, please read this file, the HELPME!.DOC file, and the Turbo C++ manuals first. If you still have a question and need assistance, help is available from the following sources: 1. Type GO BPROGB on the CompuServe bulletin board system for instant access to the Borland forums with their libraries of technical information and answers to common questions. If you are not a member of CompuServe, see the enclosed special offer, and write for full details on how to receive a free IntroPak containing a $15 credit toward your first month's on- line charges. 2. Check with your local software dealer or users' group. 3. Write to us at the following address: Borland International Turbo C Technical Support 1800 Green Hills Road P.O. Box 660001 Scotts Valley, CA 95066-0001 Please remember to include your serial number or we will be unable to process your letter. 4. If you have an urgent problem that cannot wait and you have sent in the license agreement that came with the package, you may call the Borland Technical Support Department at (408) 438-5300. Please have the following information ready before calling: a. Product name and serial number on your original distribution disk. Please have your serial number ready or we will be unable to process your call. b. Product version number. The version number for Turbo C++ can be displayed by pressing Alt-Space/A. c. Computer brand, model, and the brands and model numbers of any additional hardware. d. Operating system and version number. (The version number can be determined by typing VER at the MSDOS prompt.) e. Contents of your AUTOEXEC.BAT file. f. Contents of your CONFIG.SYS file. 2. INSTALLATION --------------- You MUST use the INSTALL program to install Turbo C++. The files on the distribution disks are all archived and have to be properly assembled. You cannot do this by hand! To start the installation, change your current drive to the one that has the install program on it and type INSTALL. You will be given instructions in a box at the bottom of the screen for each prompt. For example, if you will be installing from drive A:, type: A: INSTALL You should read the rest of this README file to get further information about this release before you do the installation. 3. FEATURES ----------- - C++! Turbo C++ offers you the full power of C++ programming, implementing the entire C++ 2.0 language as defined by the AT&T specification. To help you get started, we're also including C++ class libraries. - ANSI C! A 100% implementation of the ANSI C standard. - Borland's Programmer's Platform. The Programmer's Platform belongs to the next generation of user interfaces; it goes beyond the old integrated environment (IDE) to provide access to the full range of programs and tools on your computer. It includes: -- mouse support -- multiple overlapping windows -- a multi-file editor -- user-configurable menu entries to run other programs without leaving Turbo C++ - VROOMM (overlay manager): VROOMM lets you overlay your code without complexity. You select the code segments for overlaying; VROOMM takes care of the rest, doing the work needed to fit your code into 640K. - An online tour of the Programmer's Platform. - Online hypertext help, with copy-and-paste program examples for practically every function. - Many indispensable library functions, including heap checking functions and a complete set of complex and BCD math functions. - Note: The list of files is now contained in a separate file called FILELIST.DOC, which will appear in the target directory you specify during installation. 4. IMPORTANT INFORMATION ------------------------ C++ STREAM I/O The standard libraries have all the functions needed for the IOSTREAM libraries defined in the AT&T 2.0 spec. If you have code that uses the STREAM libraries from the 1.0 spec, you must link with the appropriate OLDSTRMx.LIB file, where 'x' is replaced by the letter for the appropriate memory model: oldstrms.lib -- small model oldstrmc.lib -- compact model oldstrmm.lib -- medium model oldstrml.lib -- large model oldstrmh.lib -- huge model EXAMPLE PROGRAMS When you are running any example programs that come with .PRJ files, if you didn't use the standard directories when you installed Turbo C++ you will have to change the .PRJ file to reflect your actual directory setup. Do this from inside the Turbo C++ IDE with Alt-O|D. Included in this release is source code to the GREP2MSG and TASM2MSG filter programs (in EXAMPLES), which give an example of how to write your own custom filter programs to use with the Transfer Menu. COMPILER AVAILABLE MEMORY To achieve better capacity and flexibility, Turbo C++ uses VROOMM, which means that the reported "available memory" number (both with the standalone compiler and in the integrated development environment) reflects the actual amount of RAM available to VROOMM for the entire compiler. What this means is that even when the reported available memory approaches or is equal to zero, much larger files can still be compiled at the expense of compilation speed. In the Programmer's Platform, when memory available for VROOMM reaches zero, the compile box will show "Swapping ...." as the amount of available memory; the standalone compiler will merely report "Available memory 0" in this case. OVERLAYS AND ASSEMBLY LANGUAGE Just as all "C" modules to be linked into an overlaid executable must be compiled with the -Y compiler switch, all assembly language modules need to be assembled with the -O TASM switch. If an assembly file is the result of a TCC compilation, TCC automatically passes -O to the assembler whenever -Y is used. Modules written entirely in assembly language must be assembled with the -O switch (using TASM version 2.0 or newer) if they are to be linked into an overlaid executable. Failure to follow these rules may result in the overlaid program failing unpredictably when run. LINKING C++ WITH C Linking C++ modules with C modules requires the use of a linkage specification. Prototypes for C functions within C++ modules must be in one of the following forms: extern "C" declaration extern "C" { declarations } For example, if a C module contains functions "char *SCopy(char*, char*);" and "void ClearScreen(void)", they must be declared in a C++ module in one of the following ways: extern "C" char *SCopy(char*, char*); extern "C" void ClearScreen(void); 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. There's also a more in-depth explanation in the Programmer's Guide. IMPORTANT NOTES - If you use inline assembler in C++, TASM 1.0 may not be able to assemble the generated code. If you run into this problem, you will need to update to version 2.0 of TASM. - Functions that return structures now take a hidden parameter that contains the address where the returned structure is to be placed. If you are writing assembler code to link with C code you must be sure to allow for this extra parameter. - When debugging a mouse application the Options|Debugging|Display Swapping option should be set to "Always" for best results. - When running under DOS versions 2.0 or 2.1, you should not rename TC, TCC, or TLINK. They need to know their names to be able to load their overlays. - TEMC will not allow a macro to contain multiple commands that return exit codes. - If you have selected Save Desktop in the Turbo C++ Programmer's Platform, everything that you put into the clipboard will be saved as part of the desktop. After several sessions this may make starting the Programmer's Platform take longer. If this happens to you (you will see the message "Loading Desktop" while the Programmer's Platform is loading), you can speed things up by deleting unneeded things from the clipboard. Just select Alt-E|S to show the clipboard, and start deleting. - In some rather unusual situations when stepping through a program in the IDE you may get a message saying "Line too complex". This means that the Programmer's Platform can't step past the line it is currently on. To continue stepping, you should move the cursor to the next line in the program and press F4 (Go to Cursor). If the line where this message occurs is the last line in a function, use the Call Stack (Ctrl-F3 or Alt-D|C) to see where the function was called from, select the calling function (by moving the highlight to it and pressing Enter), move the cursor to the next line, and press F4. - If you change your keyboard settings using the Editor Commands choice in TCINST, you may lose some key assignments. To avoid this, use the following procedure: 1) don't save the modifications to the EXE; instead invoke TCINST with the name of your configuration file, by default TCCONFIG.TC. 2) create a file containing the following line: Tab: SmartTab; and invoke TEMC with the name of that file and the name of your configuration file as arguments. As an example, you can follow these exact steps: CD \TC\BIN TCINST TCCONFIG.TC COPY CON TEMP.TEM Tab: SmartTab; TEMC TEMP.TEM TCCONFIG.TC - If a directory contains only one project file, invoking Turbo C++ without any parameters will open that project. If this behavior is not desired, a second 'dummy' project file must be placed in that directory or the current project file must be removed. - Using the 'registerbgidriver' function may result in the following link error: "Segment _TEXT exceeds 64K". In order to avoid this, it is recommended that the 'registerfarbgidriver' function be used instead. Please see UTIL.DOC for a more complete discussion of this subject. 5. Testing Your Expanded Memory: EMSTEST.COM -------------------------------------------- Included with Turbo C++ is a program to test your Expanded Memory hardware and software. If you have problems using Turbo C++ with your EMS, type EMSTEST at the DOS prompt and follow the instructions. 6. Corrections to the Documents -------------------------------- There are no corrections needed currently. 7. TCTOUR --------- TCTOUR is a visual introduction to the Programmer's Platform. Since the Programmer's Platform is Borland's newest interface, taking the tour is time well spent even if you are already familiar with other Borland products. To start the tour, type "TCTOUR" from the DOS prompt. - TCTOUR remembers what lessons a user has completed, and if you quit a lesson before completing it, what screen # you last saw. This information is stored in a .USR file, and can be recalled by starting TCTOUR again and typing your user name at the prompt just after the color rainbow. Lessons that a user has completed should show up without shading on the main TCTOUR menu. Only new users (no .USR file) get the excursion through "Using Tour." - The Navigator can be pulled up within any lesson file and within "Using TCTOUR", but nowhere else. It is pulled up by pressing the Control key, which allows you to move forward, backward, to the beginning of a lesson, to the end of a lesson, to the lesson summary, to the main menu, to get a reminder, to quit. Ctrl-B (backwards) is disabled when you are on the first slide of a lesson. - Hints (or Reminders) pop up in any lesson files and in "Using TCTOUR". They pop up if: 1) you wait 30 - 60 seconds before doing any action 2) you press Ctrl-R 3) you make an incorrect action