comp.lang.ada
 help / color / mirror / Atom feed
From: Freejack <freejack@nospam.net>
Subject: Importing C structs?
Date: Wed, 30 Jul 2003 20:03:18 GMT
Date: 2003-07-30T20:03:18+00:00	[thread overview]
Message-ID: <pan.2003.07.30.20.09.17.183172.1022@nospam.net> (raw)

I'm finally starting to get an idea(at least I think I am.) on handling
interfacing to C.

However, I'm fuzzy on importing C structs. In a nutshell...here is the
function I'm attempting to import...

	DB *
	  dbopen(const char *file, int flags, int mode, DBTYPE type,
		const void *openinfo);


Where "int mode" corresponds to the C "open" declaration and DBTYPE is a
C struct. I'm using the dbopen man page for the Sleepycat Berkely DB.

Now I'm using

	pragma Import( C, dbopen );
	
And then casting everything as either a C.integer or a character pointer.
 It compiles this way, but it sucks as a way to do 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?

Note, you'll need the SleepyCat Berkely DB header file db.h in order to
see what I'm referring to.

I've gained some skills in working strictly with the Ada environment. But
Interfacing with C is gonna take me a little while longer to learn.

Thanks for any pointers.


Freejack



             reply	other threads:[~2003-07-30 20:03 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-30 20:03 Freejack [this message]
2003-07-30 20:52 ` Importing C structs? chris
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