I can't get this to work.  This pascal function (in a separate object file)
returns a pascal packed array [1..8].
I'd like to have a C program call it and get the result.  It always returns
NULL.   According to "HP C Programmer's Guide",
I am supposed to declare the return result as the struct "pac8" shown
below.
Any idea what to do?  Thanks very much.

Greg Fudala
Circuit City Stores
[log in to unmask]

Pascal program testpas.p, to compile: pc testpas.p -c   (creates testpas.o)
==========================================================
$os 'hpux'$  { ux }
$STANDARD_LEVEL 'EXT_MODCAL'$
$NOTES OFF$

$SUBPROGRAM$
$CODE_OFFSETS ON; TABLES ON$

program mytest;
type
   pac8 = packed array [1..8] of char;
$SYSINTR '/usr/lib/paslib'$

function pascalfunc (hpsys : shortint) : pac8;
var
    myvar : pac8;
begin
   myvar := 'TESTTEST';
   pascalfunc := myvar;
end;

BEGIN
END.


C program test.c, to compile: cc test.c testpas.o   (creates a.out
executible)
==========================================================
#include <stdlib.h>
#include <stdio.h>

static struct pac8 {
 char p[9];
 } myvar ;

extern struct pac8 pascalfunc(short i);

main()
{
myvar = pascalfunc(123);
printf("myvar='%s'\n", myvar.p);
}


Run of the program
===========================================================
> a.out
myvar=''