Microsoft KB Archive/27301

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

Article ID: 27301

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

-



This article was previously published under Q27301



SUMMARY
The following example demonstrates how to pass a user-defined type from compiled Basic to Microsoft C by far 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 (BYVAL p1o AS INTEGER, _                                BYVAL p1s AS INTEGER) CLS DIM element AS record element.a = 128 element.b = DATE$ + CHR$(0) element.c = 39.6 CALL TypeReference(VARPTR(element), VARSEG(element)) END

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

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

void TypeReference(element) struct record far *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: KB27301

-

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

© Microsoft Corporation. All rights reserved.