PRODUCT : Borland C++ NUMBER : 8501 VERSION : All OS : All DATE : October 25, 1993 PAGE : 1/6 TITLE : C++ Language News - Volume 1, number 2 _C++ Support News_ ---------------------------------------------------------------- volume 1, number 2 April 26, 1993 ---------------------------------------------------------------- NEW BUG REPORTING PROCEDURE Borland Languages Technical Support launched a new bug reporting system two months ago. This new system was developed in re- sponse to our customer's requests for a better way to report bugs and get feedback about their bug reports. Our new bug reporting system utilizes a bug reporting form (TI1171) in an attempt to get all pertinent information concern- ing a bug with the initial bug report. It is our hope that this helps expedite the bug processing here in Borland Languages Technical Support. The Bug Report form is available on Compu- Serve in Library 1 of any forum, TechFax ((800)822-4269), and on Borland's DLBBS ((408)431-5096). On TechFax it is document 1171 and on CompuServe and DLBBS it has the file name TI1171.ZIP. You will find directions describing how to submit a completed bug report to technical support at the end of the problem report. Immediately after receiving a bug report we send a reply to the sender acknowledging receipt of their problem report. The reply will normally be sent using the same communications medium that was used to send the bug report. Currently, we do not have a way of replying via Borland's DLBBS. If the DLBBS is used to submit a problem report, the customer will need to supply us with an alternate method of communication so we can give feed- back about the bug report. After sending the message acknowledging receipt of a bug report the bug report is logged into a new bug report tracking system, a case is created, the customer's personal information is at- tached to the case and the bug report is assigned to a member of our bug team for verification. Our goal is to verify all reports within a week. So far, we have met this goal. Once the technical support engineer has processed the report, a message is sent to the originator of the bug report notifying them of the engineer's findings. If the bug was verified or the research resulted in a suggestion, PRODUCT : Borland C++ NUMBER : 8501 VERSION : All OS : All DATE : October 25, 1993 PAGE : 2/6 TITLE : C++ Language News - Volume 1, number 2 it is then forwarded to the development team for action. COMPUSERVE Don't miss out! You can have an opportunity to meet the Bor- land C++ Development Team on CompuServe during the week of April 26th. The members of the development team will be participating in an online forum to answer your questions about our tools, our future direction, and to hear your input for future products. This is your chance to interact directly with the team that built Borland C++ for DOS, Windows, and OS/2. We will be opening a special section on BCPPWIN where you can post your questions. The section will be open for three days (beginning Monday, April 26th) allowing you plenty of time to have a direct dialog with the development team. We look forward to talking to you then! DOS 1. If you have just installed DOS 6.0, you may have a problem running TD286.EXE. Some customers have reported that the install program for DOS 6.0 will install EMM386 with a "NOEMS" parameter. This parameter is not compatible with TD286, and removing it will allow you to run TD286 again. If you have just installed DOS 6.0, you may have wondered where your memory went. With DOS 6, Microsoft has changed the output of MEM.EXE -- with DOS 5.0, MEM would show a report like: 655360 bytes total conventional memory 654336 bytes available to MS-DOS 591520 largest executable program size 7340032 bytes total contiguous extended memory 7340032 bytes available contiguous extended memory The new DOS 6.0 MEM shows: Memory Type Total = Used + Free ---------------- ------ ------ ------ Conventional 639K 62K 577K Upper 0K 0K 0K PRODUCT : Borland C++ NUMBER : 8501 VERSION : All OS : All DATE : October 25, 1993 PAGE : 3/6 TITLE : C++ Language News - Volume 1, number 2 Adapter RAM/ROM 0K 0K 0K Extended (XMS) 7168K 7168K 0K ---------------- ------ ------ ------ Total memory 7807K 7230K 577K Total under 1 MB 639K 62K 577K Largest executable program size 577K (590432 bytes) Largest free upper memory block 0K (0 bytes) What happened to the extended memory? The DOS 5.0 version shows 7.3MB of extended memory available, while the DOS 6.0 version shows 0 available. The problem is that the DOS 6.0 version is only detecting XMS memory, so if you don't install an XMS driver, such as HIMEM.SYS, it doesn't detect any XMS and therefore assumes that all extended memory is being used. OS/2 1. I am getting a "Linker Fatal: THREAD fixup found in module '[filename]' in module '[library name]' error message. What can I do to fix this? A fixup is a record in the object file that tells the linker that certain information (usually regarding correct address of a symbol defined in another module) is needed. The link- er uses the fixup record to locate and patch in the address for the correct symbol at link time. A thread fixup is a fixup record that references a previous thread record sim- ilar to a fixup record) to determine the frame or target of the fixup, rather than explicitly declaring the information. Borland C++ for OS/2 does not generate thread based fixup records, and this message will only be generated if third- party DLL's, etc. are being linked together. In this case, the best solution is to recompile all code with Borland C++ for OS/2. WINDOWS 1. The background of a dialog box can be changed by responding to the WM_CTLCOLOR message. Dialogs ignore the brush spec- PRODUCT : Borland C++ NUMBER : 8501 VERSION : All OS : All DATE : October 25, 1993 PAGE : 4/6 TITLE : C++ Language News - Volume 1, number 2 ified in their class information. 2. When writing a program for the multiple document interface (MDI), the programmer can actually specify which menu the list of child windows will appear under. This is usually the Window menu, but can be changed to any other menu. Using OWL, the constructor can be overridden to set the variable ChildMenuPos equal to a number which specifies the pull-down menu where the list should appear. A value of zero points to the leftmost pull-down menu. A value of one points to the pull-down menu one over, etc. TURBO VISION 1. The error message "no stub for fixup" can occur with over- laid programs. One of the possible causes for this message is that an object file or library has not been compiled with overlay support. This can be solved by recompiling all source modules with the -Y switch. If the source code for the library is not available, then the vendor with have be contacted to verify that the library has been compiled for overlay support. Another possibility is in the use of virtual inheritance and virtual destructors. If this is case, then recompile the source code with the -B -Vs switches (compile via assembly and use C++ local virtual tables. Likewise, the module con- taining the destructor could be recompiled without overlay support. TI1006 explains in detail how to create an over- laid version of the Turbo Vision source code. PARADOX ENGINE 1. The Paradox Engine 3.01 maintenance release libraries are available online on CompuServe in BDEVTOOLS library 3, and on the Borland DLBBS as the file PXALL.ZIP. This archive contains the libraries only. 2. PXErrMsg() is not in the library for the Paradox Engine 3.0. If you need these error messages, include PXMSG.C into your project. PRODUCT : Borland C++ NUMBER : 8501 VERSION : All OS : All DATE : October 25, 1993 PAGE : 5/6 TITLE : C++ Language News - Volume 1, number 2 QUIZ Answer to last week's code: code fragment B is the fastest. This week: Why does the following program fail to compile and link? // FILE: a.cpp const int alpha = 12345; // FILE: b.cpp void get alpha() { return alpha; } NEW TECHNICAL INFORMATION DOCUMENTS AVAILABLE Some of the latest technical documents made available to customers include the following -- 1289 Slowing down mouse scrolling in Brief 1290 Explanation of WinMain duplicated symbol 1291 How to detect multiple keypresses 1292 BGI common issues, Q&A 1293 Installing the mouse driver supplied via Windows 3.1 1294 Using streams in binary mode 1295 Common causes of Paradox Engine errors 1296 Example of using Turbo Vision resources 1297 Example of password input using a TInputLine These can be found in LIB-2 of either BCPPDOS and BCPPWIN under CompuServe, our download BBS, TechFAX, and OAS. MISCELLANEOUS The most recent version of the C++ language specification draft developed by ANSI/ISO X3J16 committee is dated January 1993 and can be obtained by sending $35.00 to the following address: PRODUCT : Borland C++ NUMBER : 8501 VERSION : All OS : All DATE : October 25, 1993 PAGE : 6/6 TITLE : C++ Language News - Volume 1, number 2 Lynn Barra 1250 Eye Street, NW Washington, DC 20005 (202)626-5738 CIS 75300,2665 Checks should be made payable to the X3 Secretariat. DISCLAIMER: You have the right to use this technical information subject to the terms of the No-Nonsense License Statement that you received with the Borland product to which this information pertains.