Microsoft KB Archive/27327

= Passing COMMON Variables from Basic to C by Far Reference =

Article ID: 27327

Article Last Modified on 11/21/2006

-

APPLIES TO


 * Microsoft QuickBasic 4.0, when used with:
 * Microsoft MS-DOS 6.22 Standard Edition
 * Microsoft QuickBASIC 4.0b, when used with:
 * Microsoft MS-DOS 6.22 Standard Edition
 * Microsoft QuickBasic 4.5 for MS-DOS, when used with:
 * Microsoft MS-DOS 6.22 Standard Edition
 * Microsoft BASIC Compiler 6.0
 * Microsoft BASIC Compiler 6.0b

-



This article was previously published under Q27327



SUMMARY
The following example demonstrates how to pass COMMON variables 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 =====

DECLARE SUB RCommon CDECL (_           BYVAL p1o AS INTEGER,_            BYVAL p1s AS INTEGER) COMMON SHARED element1 AS INTEGER, element2 AS STRING * 20, _ element3 AS SINGLE element1 = 23 element2 = &quot;DATE : &quot; + DATE$ + CHR$(0) element3 = 309.03 CALL RCommon(VARPTR(element1), VARSEG(element1)) END

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

struct common_block{  /* structure that looks like the Basic */ int a;         /* common block                        */ char b[20]; float c; }; void RCommon(pointer) struct common_block far *pointer; {    printf(&quot;Element1 = %d\n&quot;,pointer->a); printf(&quot;Element2 = %s\n&quot;,pointer->b); printf(&quot;Element3 = %f\n&quot;,pointer->c); }
 * 1) include 

OUTPUT
Element1 = 23 Element2 = DATE : 02-02-1988 Element3 = 309.029999

Additional query words: QuickBas BasicCom

Keywords: KB27327

-

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

© Microsoft Corporation. All rights reserved.