Basic PDS 7.00 Not Compatible with C PDS Version 6.00 (61337)



The information in this article applies to:

  • Microsoft QuickBASIC 4.0
  • Microsoft QuickBASIC 4.0b
  • Microsoft QuickBASIC 4.5
  • Microsoft BASIC Compiler for MS-DOS and OS/2 6.0
  • Microsoft BASIC Compiler for MS-DOS and OS/2 6.0b
  • Microsoft Basic Professional Development System (PDS) for MS-DOS and MS OS/2 7.0

This article was previously published under Q61337

SUMMARY

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.

MORE INFORMATION

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.

Modification Type:MinorLast Reviewed:8/16/2005
Keywords:KB61337