I'm trying to return a structure (created in C), back to BM.
The C routine is thus :
and the BM code is :
The C function is being called no problem, memory is being allocated and the header code is being stored.
Unfortunately the value in header.header in BM is 0, which must mean a pointer to the stucture isn't being returned for some reason.
The C routine is thus :
struct __HEADER *Create_Header(void) { struct __HEADER *temp; if ((temp=(struct __HEADER *) calloc(1,sizeof(struct __HEADER)))!=NULL) { temp->header=LINKLIST_HEADER; } return (temp); }
and the BM code is :
Import "/Users/nicholaskingsley/LinkList/LinkList.c" Extern Type LinkListNode Field header:Int Field dataSize:Int Field data:Byte Ptr Field prevNode:LinkListNode Ptr Field nextNode:LinkListNode Ptr EndType Type LinkListHeader Field header:Int Field numNodes:Int Field firstNode:LinkListNode Ptr Field lastNode:LinkListNode Ptr EndType Function Create_Header:LinkListHeader() 'Function Diag:Byte(header:LinkListHeader,fileName$) EndExtern Local header:LinkListHeader header=Create_Header() Print "Returned Header header :" Print header.header
The C function is being called no problem, memory is being allocated and the header code is being stored.
Unfortunately the value in header.header in BM is 0, which must mean a pointer to the stucture isn't being returned for some reason.