Microsoft KB Archive/61334

From BetaArchive Wiki
Knowledge Base


BUG: Undefined Subprogram CALLing Machine Language Using Long

Article ID: 61334

Article Last Modified on 11/21/2006

This article was previously published under Q61334

SYMPTOMS

CALLing a machine-language routine using a long integer (&) for the routine's address causes the QuickBasic Interpreter to produce the "Undefined subprogram" error. Using a long for the address works correctly in a compiled application.

To work around this problem, use a single-precision (!) or double-precision (#) variable for the address of the machine-language routine.

Microsoft has confirmed this to be a bug in Microsoft QuickBasic version 1.00 for the Macintosh . We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

Code Example

The following code example produces an "Undefined subprogram" error in the QuickBasic Interpreter but works correctly when compiled:

   Code% = &H4E75         'equiv to RTS in assembly language
   Ptr& = VARPTR(Code%)   'Ptr! or Ptr# works correctly
   CALL Ptr&              'This line causes Undefined subprogram
   PRINT "Call succeeds in application."
                


Additional query words: MQuickB

Keywords: kbbug KB61334