Microsoft KB Archive/27297

= Passing Basic User-Defined Type to C by Near Reference =

Article ID: 27297

Article Last Modified on 11/21/2006

-

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

-



This article was previously published under Q27297



SUMMARY
The example below demonstrates how to pass a user-defined type from compiled Basic to Microsoft C by near reference.

This information about inter-language calling applies to QuickBasic Versions 4.00, 4.00b, and 4.50 for MS-DOS and to Microsoft Basic Compiler Versions 6.00 and 6.00b for MS-DOS and MS OS/2.



MORE INFORMATION
For more information about passing other types of parameters between Basic and C, and a list of which Basic and C versions are compatible with each other, query in the Microsoft Knowledge Base using the following word:

BAS2C

Code Example
REM ===== Basic PROGRAM =====

TYPE record a AS INTEGER b AS STRING * 20 c AS SINGLE END TYPE

DECLARE SUB TypeReference CDECL (SEG p1 AS record)

CLS DIM element AS record element.a = 128 element.b = DATE$ + CHR$(0) element.c = 39.6 CALL TypeReference(element) END

/* ===== C ROUTINE ===== /*

struct record{ int a;      char b[20]; float c;      };
 * 1) include 

void TypeReference(element) struct record near *element; {    printf(&quot;Record.A = %d\n&quot;,element->a); printf(&quot;Record.B = %s\n&quot;,element->b); printf(&quot;Record.C = %f\n&quot;,element->c); }

OUTPUT
Record.A = 128 Record.B = 02-02-1988 Record.C = 39.599998

Additional query words: QuickBas BasicCom

Keywords: KB27297

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.