From: chris <spamoff.danx@ntlworld.com>
Subject: Re: Importing C structs?
Date: Wed, 30 Jul 2003 21:52:49 +0100
Date: 2003-07-30T21:52:49+01:00 [thread overview]
Message-ID: <ddWVa.1313$Kx1.14581@newsfep4-glfd.server.ntli.net> (raw)
In-Reply-To: <pan.2003.07.30.20.09.17.183172.1022@nospam.net>
Freejack wrote:
> I'm finally starting to get an idea(at least I think I am.) on handling
> interfacing to C.
Really? I don't think I'll ever get the hang of it.
> Specifically, would I cast DBTYPE as a seperate record type, and then
> provide a seperate function to translate each item into the type expected
> by the C struct? Or can import the DBTYPE struct whole hog into my Ada
> specification?
Make an Ada record corresponding to that type. Map it's fields to
things from interfaces.c and other records. Then use
pragma Convention(C, DBType);
I think!
This is from my ongoing work on a libjpeg binding...
type Jpeg_Error_Mgr is record
Error_Exit : Error_Exit_Handler;
Emit_Message : Emit_Message_Handler;
Output_Message : Output_Message_Handler;
Format_Message : Format_Message_Handler;
Reset_Error_Mgr : Reset_Error_Handler;
Msg_Code : C.Int;
Msg_Parm : System.Address;
Trace_Level : C.Int;
Num_Warnings : C.Long;
Jpeg_Message_Table : Jpeg_Message_TableT;
Last_Jpeg_Message : C.Int;
Addon_Message_Table : Jpeg_Message_TableT;
First_Addon_Message : C.Int;
Last_Addon_Message : C.Int;
end record;
pragma Convention (C, Jpeg_Error_Mgr);
HTH,
Chris
next prev parent reply other threads:[~2003-07-30 20:52 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-07-30 20:03 Importing C structs? Freejack
2003-07-30 20:52 ` chris [this message]
2003-07-30 21:26 ` Freejack
2003-07-30 23:50 ` tmoran
2003-07-31 10:53 ` chris
2003-08-04 14:33 ` Andreas Almroth
2003-08-04 15:16 ` Samuel Tardieu
2003-08-04 20:07 ` Randy Brukardt
2003-07-31 17:14 ` Warren W. Gay VE3WWG
2003-08-12 0:02 ` chris
2003-07-31 18:17 ` Xenos
2003-07-31 19:16 ` Simon Wright
2003-07-31 20:17 ` Samuel Tardieu
2003-07-31 20:40 ` Xenos
2003-07-30 23:14 ` Ching Bon Lam
2003-07-31 0:07 ` tmoran
2003-07-31 5:35 ` Matthew Heaney
2003-07-31 7:46 ` Freejack
2003-07-31 9:27 ` Martin Dowie
2003-07-31 21:41 ` Freejack
2003-08-01 7:39 ` Martin Dowie
2003-07-31 17:34 ` Matthew Heaney
2003-07-31 11:29 ` Ching Bon Lam
2003-07-31 16:59 ` Matthew Heaney
2003-07-31 17:32 ` Warren W. Gay VE3WWG
2003-07-31 17:13 ` Matthew Heaney
2003-07-31 17:40 ` Randy Brukardt
2003-07-31 5:21 ` Matthew Heaney
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox