From: Nick Roberts <nick.roberts@acm.org>
Subject: Re: Thick Ada bindings to C Win32
Date: Fri, 12 Nov 2004 12:09:11 +0000
Date: 2004-11-12T12:09:11+00:00 [thread overview]
Message-ID: <2vjnfbF2lioiaU1@uni-berlin.de> (raw)
In-Reply-To: <sa4y8haifwq.fsf@snoopy.apana.org.au>
Try:
function Addr (S : BYTE_Array) return LPCVOID is
function To_LPCVOID is new
Ada.Unchecked_Conversion (System.Address, LPCVOID);
begin
return To_LPCVOID( S(S'First)'Address );
end;
pragma Inline(Addr);
procedure Put(Handle : Handle_Type; Item : in Byte_Array) is
Successful: Win32.BOOL;
begin
Successful :=
Win32.Winbase.WriteFile
( ...
lpBuffer => Addr(Item), -- Win32.Lpcvoid
nNumberOfBytesToWrite => Item'Length, -- Win32.Dword => 1 bytes
... );
if not Successful then raise ???_Error; end if;
end Put;
I haven't tested this. It might be GNAT-specific. Must dash!
--
Nick Roberts
next prev parent reply other threads:[~2004-11-12 12:09 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-11-10 2:41 Thick Ada bindings to C Win32 Brian May
2004-11-10 4:36 ` tmoran
2004-11-10 19:31 ` Jeffrey Carter
2004-11-12 1:51 ` Brian May
2004-11-12 12:09 ` Nick Roberts [this message]
2004-11-12 17:57 ` tmoran
2004-11-12 18:50 ` Martin Krischik
2004-11-12 23:29 ` Brian May
2004-11-13 0:51 ` Jeffrey Carter
2004-11-25 23:19 ` Brian May
2004-11-26 9:50 ` Martin Krischik
2004-11-26 12:23 ` Frank J. Lhota
2004-11-26 19:19 ` Jeffrey Carter
2004-11-27 23:56 ` Brian May
2004-11-28 18:57 ` Jeffrey Carter
2004-11-28 23:45 ` Brian May
2004-11-29 7:50 ` Message-ID: <sa4vfbpzgfu.fsf@snoo tmoran
2004-11-29 14:34 ` Thick Ada bindings to C Win32 Frank J. Lhota
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox