Microsoft KB Archive/58815

From BetaArchive Wiki
Knowledge Base

"Unresolved External" Using Wrong Linker with Basic 7.00, 7.10

Article ID: 58815

Article Last Modified on 11/21/2006

This article was previously published under Q58815


Microsoft Basic Professional Development System (PDS) versions 7.00 and 7.10 for MS-DOS and MS OS/2 are shipped with Microsoft Segmented-Executable Linker versions 5.05 and 5.10, respectively. Because of the newer technology used in these linkers, it is more important than ever to use only the linker that comes with the product (or a later version of the Segmented-Executable Linker) to link Basic PDS programs.

Linking Basic PDS modules with a version of LINK.EXE earlier than 5.05, such as the Microsoft 8086-Object Linker, can result in "L2029: Unresolved external" errors, such as the following:

        B$IsamSetmemDown in file(s):

     B$IsamSetmemBack in file(s):

     B$RestoreEmsState in file(s):

     B$DoIsamTerm in file(s):

     B$FIsamInited in file(s):

These errors should not occur when linking Basic PDS modules with Microsoft Segmented-Executable Linker version 5.05 or later.

A very common mistake is running LINK.EXE from a directory that does not contain LINK.EXE and thus invoking an older linker version found first in your MS-DOS PATH. This mistake often occurs when you choose Make EXE File from the Run menu in QBX.EXE, and your PATH in MS-DOS or the Options menu is incorrect. You must be sure to have the correct linker found in your MS-DOS PATH or in the current directory.



When you mistakenly link Basic PDS 7.10 object (.OBJ) files using the version 3.69 LINK.EXE (which comes with QuickBasic 4.50), an "Unresolved external" error occurs when in QBX.EXE you choose the EXE Requiring BRT Module option, but the error does not occur when you choose the Stand-Alone EXE (/O) option.

Additional query words: BasicCom

Keywords: KB58815