Thread overview | |||||
---|---|---|---|---|---|
|
July 10, 2015 Binding Nested C Structs | ||||
---|---|---|---|---|
| ||||
I am trying to bind to a C union with a number of nested structs declared as follows: typedef union { int Integer; struct { int nCount; int *paList; } IntegerList; struct { int nCount; GIntBig *paList; } Integer64List; } OGRField; According to http://wiki.dlang.org/D_binding_for_C#Nested_Structs I should attempt to write something like (last example shown): extern(C) union OGRField { int Integer; struct { int nCount; int* paList; } struct { int nCount; GIntBig* paList; } } But that is obviously not going to work. Does anyone know the right way to handle nested C structs of that form. |
July 10, 2015 Re: Binding Nested C Structs | ||||
---|---|---|---|---|
| ||||
Posted in reply to Craig Dillabaugh | On Friday, 10 July 2015 at 03:38:49 UTC, Craig Dillabaugh wrote:
> I am trying to bind to a C union with a number of nested structs declared as follows:
>
> typedef union {
> int Integer;
>
> struct {
> int nCount;
> int *paList;
> } IntegerList;
>
> struct {
> int nCount;
> GIntBig *paList;
> } Integer64List;
>
> } OGRField;
>
> According to http://wiki.dlang.org/D_binding_for_C#Nested_Structs
> I should attempt to write something like (last example shown):
>
> extern(C) union OGRField
> {
> int Integer;
> struct {
> int nCount;
> int* paList;
> }
>
> struct {
> int nCount;
> GIntBig* paList;
> }
> }
>
> But that is obviously not going to work. Does anyone know the right way
> to handle nested C structs of that form.
OK Found the answer elsewhere on the same page:
extern(C) union OGRField
{
int Integer;
struct _IntegerList
{
int nCount;
int* paList;
}
_IntegerList IntegerList;
struct _Integer64List
{
int nCount;
GIntBig* paList;
}
_Integer64List Integer64List;
}
|
July 10, 2015 Re: Binding Nested C Structs | ||||
---|---|---|---|---|
| ||||
Posted in reply to Craig Dillabaugh | On 2015-07-10 05:38, Craig Dillabaugh wrote: > I am trying to bind to a C union with a number of nested structs > declared as follows: > > typedef union { > int Integer; > > struct { > int nCount; > int *paList; > } IntegerList; > > struct { > int nCount; > GIntBig *paList; > } Integer64List; > > } OGRField; > > According to http://wiki.dlang.org/D_binding_for_C#Nested_Structs > I should attempt to write something like (last example shown): > > extern(C) union OGRField > { > int Integer; > struct { > int nCount; > int* paList; > } > > struct { > int nCount; > GIntBig* paList; > } > } > > But that is obviously not going to work. Does anyone know the right way > to handle nested C structs of that form. I think it will work but the API would be different. -- /Jacob Carlborg |
Copyright © 1999-2021 by the D Language Foundation