comp.lang.ada
 help / color / mirror / Atom feed
From: Stephen Leake <Stephen.Leake@gsfc.nasa.gov>
Subject: Re: win32ada design question/problem
Date: 1998/11/16
Date: 1998-11-16T00:00:00+00:00	[thread overview]
Message-ID: <ubtm7cxj0.fsf@gsfc.nasa.gov> (raw)
In-Reply-To: 72i3r9$o1r$1@nnrp1.dejanews.com

dennison@telepath.com writes:

> In article <364C5EDE.4F402D13@elca-matrix.ch>,
>   Mats.Weber@elca-matrix.ch wrote:
> > I just had a look at the win32ada binding and found that I could not use
> > it as I would like. Lets take this function as an example:
> >
> > >     function WriteFile(hFile                 : Win32.Winnt.HANDLE;
> > >                        lpBuffer              : Win32.LPCVOID;
> > >                        nNumberOfBytesToWrite : Win32.DWORD;
> > >                        lpNumberOfBytesWritten: Win32.LPDWORD;
> > >                        lpOverlapped          : Win32.Winbase.LPOVERLAPPED)
> > >                                                return Win32.BOOL;
> (snip)
> > Of course I can use 'Unchecked_Access to circumvent this, but then I
> > don't think that the binding is well designed if it requires
> > 'Unchecked_Access all over the place in code that uses it.
> 
> It wasn't designed at all. (by Ada folk, anway) Its a *thin* binding. If you
> want something that doesn't require unchecked programming to use, then you
> want a thick binding.

While I agree it wasn't well designed, I don't agree you need to go to
a thick binding. The binding should use 'out' parameter modes in the
places where C uses pointers to achieve output parameters. Most
compilers will map an 'out' parameter to a C pointer, since that's
what 'by reference' means.

-- Stephe




  reply	other threads:[~1998-11-16  0:00 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-11-13  0:00 win32ada design question/problem Mats Weber
1998-11-13  0:00 ` dennison
1998-11-16  0:00   ` Stephen Leake [this message]
1998-11-16  0:00     ` Tucker Taft
1998-11-17  0:00     ` dennison
1998-11-17  0:00       ` Mats Weber
1998-11-17  0:00         ` dennison
1998-11-17  0:00           ` Tucker Taft
1998-11-18  0:00             ` Tom Moran
1998-11-18  0:00               ` dennison
1998-11-17  0:00           ` Mats Weber
1998-11-13  0:00 ` Tom Moran
1998-11-16  0:00   ` Mats Weber
1998-11-18  0:00     ` Tom Moran
1998-11-18  0:00       ` dennison
1998-11-19  0:00       ` Mats Weber
1998-11-19  0:00         ` David Botton
1998-11-19  0:00           ` Mats Weber
1998-11-23  0:00             ` Marin David Condic
1998-11-19  0:00         ` dennison
1998-11-19  0:00           ` David Botton
1998-11-19  0:00       ` Mats Weber
1998-11-27  0:00     ` Roga Danar
  -- strict thread matches above, loose matches on Subject: below --
1998-11-19  0:00 tmoran
1998-11-19  0:00 ` dennison
1998-11-19  0:00   ` Tom Moran
1998-11-20  0:00     ` dennison
1998-11-20  0:00       ` Tom Moran
1998-11-23  0:00     ` Marin David Condic
1998-11-23  0:00       ` Mats Weber
1998-11-24  0:00         ` dennison
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox