BUG: Stand-Alone Program Using Overlays & ISAM Hangs on Open

ID: Q92953


The information in this article applies to:
  • Microsoft Visual Basic Standard and Professional Editions for MS-DOS, version 1.0


SYMPTOMS

When you create a stand-alone (compiled with the /o option) executable program that uses overlays and ISAM, your program hangs (stops responding to input) when it attempts to execute an ISAM open statement. However, when you compile the same program to use a runtime module (compiled without the /o option), the program runs correctly.


WORKAROUND

To work around the problem, specify the PROISAMD.LIB file in the objects section of the LINK command, as in this example:

LINK MODULE1.OBJ PROISAMD.LIB (MODULE2.OBJ);
This forces the linker to pull in all of the object code from the ProIsamD library, so it can run correctly as a standalone program.


STATUS

Microsoft has confirmed this to be a bug in the Professional Edition of Microsoft Visual Basic version 1.0 for MS-DOS. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.


MORE INFORMATION

If you want your program to use overlays and ISAM, you must compile your program without the /o option, so that your program requires a separate run- time module. The following example demonstrates the problem:

  1. Type the following code into a source module called MODULE1.BAS:
    
       'Module1.bas
     
       DECLARE SUB DOISAM()
       CALL DOISAM 


  2. Type the following code into a source module called MODULE2.BAS:
    
       'Module2.bas
       TYPE RECORDTYPE
          DUMMY as INTEGER
       END TYPE
    
     
       SUB DOISAM()
          PRINT "BEFORE THE OPEN"
          OPEN "DATABASE" FOR ISAM RECORDTYPE "DBTABLE" AS #1
          PRINT "AFTER THE OPEN" 'This program hangs on the previous line.
       END SUB 


  3. Compile both modules from the MS-DOS prompt with the following commands:
    
       BC /o MODULE1.BAS;
       BC /o MODULE2.BAS; 


  4. Link the program:
    
       LINK MODULE1.OBJ+(MODULE2.OBJ); 


  5. Running this program causes your machine to hang when it encounters the ISAM open statement.


To make this program useable, remove the /o option from the compile line.

Additional query words: VBmsdos buglist1.00 1.00

Keywords :
Version : MS-DOS:1.0
Platform : MS-DOS
Issue type :


Last Reviewed: December 8, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.