Category : C++ Source Code
Archive   : TI8502.ZIP
Filename : TI8501.ASC

Output of file : TI8501.ASC contained in archive : TI8502.ZIP

PRODUCT : Borland C++ NUMBER : 8501
OS : All
DATE : April 27, 1993 PAGE : 1/6

TITLE : C++ Language News - Volume 1, number 2

_C++ Support News_
volume 1, number 2 April 26, 1993


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)439-9096). 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
OS : All
DATE : April 27, 1993 PAGE : 2/6

TITLE : C++ Language News - Volume 1, number 2

it is then forwarded to the development team for action.


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!


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
OS : All
DATE : April 27, 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.


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.


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
OS : All
DATE : April 27, 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.


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.


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

PRODUCT : Borland C++ NUMBER : 8501
OS : All
DATE : April 27, 1993 PAGE : 5/6

TITLE : C++ Language News - Volume 1, number 2


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;


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
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.


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
OS : All
DATE : April 27, 1993 PAGE : 6/6

TITLE : C++ Language News - Volume 1, number 2

Lynn Barra
1250 Eye Street, NW
Washington, DC 20005
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