Microsoft KB Archive/61337

From BetaArchive Wiki
Knowledge Base


Basic PDS 7.00 Not Compatible with C PDS Version 6.00

Article ID: 61337

Article Last Modified on 8/16/2005



APPLIES TO

  • Microsoft QuickBasic 4.0
  • Microsoft QuickBASIC 4.0b
  • Microsoft QuickBasic 4.5 for MS-DOS
  • Microsoft BASIC Compiler 6.0
  • Microsoft BASIC Compiler 6.0b
  • Microsoft BASIC Professional Development System 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.


Additional query words: QuickBas BasicCom

Keywords: KB61337