KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q61337: BASIC PDS 7.00 Not Compatible with C PDS Version 6.00

Article: Q61337
Product(s): See article
Version(s): 6.00 6.00b 7.00 | 6.00 6.00b 7.00
Operating System(s): MS-DOS | OS/2
Keyword(s): ENDUSER | SR# S900415-6 B_QuickBas S_C S_QuickC | mspl13_basic
Last Modified: 18-OCT-1990

Microsoft BASIC Professional Development System (PDS) version 7.00,
QuickBASIC version 4.50, and earlier versions of BASIC are not
compatible with Microsoft C Professional Development System version
6.00 or Microsoft QuickC version 2.50 or 2.51. You must obtain BASIC
PDS 7.10 to be compatible with these versions of C and QuickC.

Below are some of the LINK L2025 errors that can occur when you LINK
an incompatible BASIC version with Microsoft C PDS version 6.00:

   E:\C600\LIB\MLIBCE.LIB(chkstk.asm) : error L2025: STKHQQ : symbol
    defined more than once

   E:\C600\LIB\MLIBCE.LIB(chkstk.asm) : error L2025: __aaltstkovr :
    symbol defined more than once

   E:\C600\LIB\MLIBCE.LIB(chkstk.asm) : error L2025: __chkstk :
    symbol defined more than once

This information applies to Microsoft QuickBASIC versions 4.00, 4.00b,
and 4.50 for MS-DOS, to Microsoft BASIC Compiler versions 6.00 and
6.00b for MS-DOS, and to Microsoft BASIC PDS version 7.00 for MS-DOS
and MS OS/2.

A separate article, found by querying in this Knowledge Base using the
following words, describes which specific Microsoft language compiler
versions are designed to be linked together:

   BASIC and C and QuickC and calling and linked and modules

For more specific information about how to do mixed-language
programming with Microsoft C and Microsoft BASIC, query in this
Knowledge Base on the following word:

   BAS2C

Microsoft C PDS version 6.00 and Microsoft QuickC versions 2.50 and
2.51 use different start-up and heap management code than previous
versions of C and QuickC. Since the BASIC libraries must be put first
on the LINK line, the BASIC libraries supply alternate start-up, heap,
and low-level I/O code for the LINKed C routines. These alternate
routines are specific to the versions of C available when the BASIC
products shipped.

Each version of BASIC is tested and designed to work with the versions
of Microsoft C and QuickC currently on the market when the BASIC
package is released. Incompatibilities caused by new releases of C and
QuickC are resolved whenever an updated BASIC product ships.

To find a separate article in this Knowledge Base that describes the /Gh
option (which makes C 6.00 use the C 5.10 libraries, for Microsoft
Windows 2.x compatibility), as mentioned in the C 6.00 README.DOC
file, query on the following words:

   /Gh and 6.00 and 5.10 and C and library and compatibility

However, BASIC PDS 7.00 and QuickBASIC 4.50 (and earlier versions) are
not compatible with routines compiled with C 6.00, even when the C
6.00 /Gh option is used.

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.