From: "Steve" <nospam_steved94@attbi.com>
Subject: Re: Interfacing Ada with C
Date: Wed, 16 Apr 2003 04:25:07 GMT
Date: 2003-04-16T04:25:07+00:00 [thread overview]
Message-ID: <DW4na.497214$S_4.549072@rwcrnsc53> (raw)
In-Reply-To: pD3na.499811$sf5.816502@rwcrnsc52.ops.asp.att.net
"Steve" <nospam_steved94@attbi.com> wrote in message
news:pD3na.499811$sf5.816502@rwcrnsc52.ops.asp.att.net...
> A different way of doing this:
>
> In Ada you should be able to use Interfaces.C.Pointers and then declare
your
> procedure as follows:
>
> package Interface_Wide_String is
> new Interfaces.C.Pointers( Interfaces.C.size_T,
> Interfaces.C.WChar_T,
> Interfaces.C.WChar_Array,
> Interfaces.C.Wide_Nul );
[snip]
>
> I haven't tested this, but I think it will work (it compiles anyway).
>
> Steve
> (The Duck)
>
I created a small set of sources and tested my example (it does work).
Here's the source
for my test case:
------ File: clatest.c ------
#include <stdlib.h>
extern void One( wchar_t *text );
extern void adainit();
extern void adafinal();
int main(int argc, char* argv[])
{
adainit();
One( L"Hello from Ada" );
adafinal();
return 0;
}
------ File: One_Package.ads ------
with Interfaces.C;
with Interfaces.C.Pointers;
package One_Package is
package Interface_Wide_String is
new Interfaces.C.Pointers( Interfaces.C.size_T,
Interfaces.C.WChar_T,
Interfaces.C.WChar_Array,
Interfaces.C.Wide_Nul );
procedure One( Name : in Interface_Wide_String.Pointer );
pragma Export( C, One, "One" );
end One_Package;
------ File: One_Package.adb ------
with Ada.Wide_Text_Io;
package body One_Package is
procedure One( Name : in Interface_Wide_String.Pointer ) is
begin
Ada.Wide_Text_Io.Put_Line( Interfaces.C.To_Ada(
Interface_Wide_String.Value( Name ) ) );
end One;
end One_Package;
Steve
(The Duck)
next prev parent reply other threads:[~2003-04-16 4:25 UTC|newest]
Thread overview: 111+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-04-14 21:39 Interfacing Ada with C Paul Anderson
2003-04-14 23:05 ` tmoran
2003-04-16 2:56 ` Steve
2003-04-16 4:25 ` Steve [this message]
-- strict thread matches above, loose matches on Subject: below --
2010-07-24 11:57 Ada novice
2010-07-24 12:08 ` Robert A Duff
2010-07-24 12:32 ` Ada novice
2010-07-24 14:52 ` Marco
2010-07-24 16:38 ` Simon Wright
2010-07-24 17:58 ` Ada novice
2010-07-25 8:29 ` Simon Wright
2010-07-25 12:21 ` Ada novice
2010-07-25 13:50 ` Dmitry A. Kazakov
2010-07-25 14:12 ` Ada novice
2010-07-25 14:17 ` Ada novice
2010-07-25 14:26 ` Simon Wright
2010-07-25 16:18 ` Ada novice
2010-07-25 17:06 ` Dmitry A. Kazakov
2010-07-25 17:42 ` Ada novice
[not found] ` <a5ba4513-ce2b-45d1-a5f4-ff1a7945b0b0@q12g2000yqj.googlegroups.com>
2010-07-25 18:26 ` Dmitry A. Kazakov
2010-07-25 18:52 ` Ada novice
2010-07-25 18:58 ` Dmitry A. Kazakov
2010-07-25 19:13 ` Ada novice
2010-07-25 19:19 ` Dmitry A. Kazakov
2010-07-25 19:28 ` Ada novice
2010-07-25 20:04 ` Dmitry A. Kazakov
2010-07-26 13:40 ` Ada novice
2010-07-26 14:52 ` Dmitry A. Kazakov
2010-07-26 17:14 ` Ada novice
[not found] ` <a2da2804-c19b-44cf-9855-834c602c4520@y11g2000yqm.googlegroups.com>
2010-07-26 17:32 ` Dmitry A. Kazakov
2010-07-26 17:50 ` Ada novice
2010-07-27 12:24 ` Peter Hermann
2010-07-27 19:01 ` Ada novice
2010-07-27 5:50 ` Ada novice
2010-07-27 7:27 ` Dmitry A. Kazakov
2010-07-27 7:43 ` Georg Bauhaus
2010-07-27 18:37 ` Ada novice
2010-07-27 18:40 ` Ada novice
2010-07-25 17:24 ` Simon Wright
2010-07-25 17:47 ` Simon Wright
2010-07-25 17:58 ` Ada novice
2010-07-25 23:21 ` Simon Wright
2010-07-26 1:24 ` John B. Matthews
2010-07-26 14:01 ` Ada novice
2010-07-26 15:46 ` sjw
[not found] ` <da987804-3948-4871-ab52-4a8e95f06d44@k39g2000yqb.googlegroups.com>
2010-07-26 19:46 ` Simon Wright
2010-07-26 20:39 ` Dmitry A. Kazakov
2010-07-27 5:46 ` Ada novice
2010-07-27 5:43 ` Ada novice
2010-07-27 17:33 ` Simon Wright
2010-07-27 18:34 ` Ada novice
2010-07-28 22:26 ` Simon Wright
2010-07-29 9:19 ` Ada novice
2010-07-29 19:14 ` Simon Wright
2010-07-29 20:25 ` Ada novice
2010-07-30 1:46 ` John B. Matthews
2010-07-30 9:09 ` sjw
2010-07-30 12:41 ` Ada novice
2010-07-30 15:13 ` John B. Matthews
2010-07-30 17:25 ` Ada novice
2010-07-30 19:41 ` John B. Matthews
2010-07-30 21:08 ` Ada novice
2010-07-30 22:19 ` Simon Wright
2010-07-31 12:19 ` Ada novice
2010-07-31 13:25 ` Simon Wright
2010-07-31 19:39 ` Ada novice
2010-07-31 21:02 ` Simon Wright
2010-08-01 9:36 ` Ada novice
2010-08-01 16:14 ` Simon Wright
2010-08-01 16:27 ` Ada novice
2010-08-01 17:33 ` Simon Wright
[not found] ` <997036dd-ca13-4cdf-8f88-9b47a9f83b2d@s9g2000yqd.googlegroups.com>
2010-07-31 13:08 ` Simon Wright
2010-07-31 13:17 ` Simon Wright
2010-07-30 15:10 ` John B. Matthews
2010-08-01 10:47 ` John B. Matthews
2010-08-01 17:08 ` Simon Wright
2010-08-02 1:08 ` John B. Matthews
2010-08-02 16:36 ` Simon Wright
2010-08-02 16:55 ` Ada novice
2010-08-05 9:14 ` Ada novice
2010-08-05 13:23 ` John B. Matthews
2010-08-05 13:57 ` sjw
2010-08-05 17:24 ` Ada novice
2010-08-05 17:59 ` Jeffrey Carter
2010-08-05 20:25 ` Simon Wright
2010-08-06 1:15 ` John B. Matthews
2010-08-06 9:11 ` Ada novice
2010-08-06 9:17 ` Ada novice
2010-08-06 8:04 ` Jacob Sparre Andersen
2010-08-06 8:42 ` Dmitry A. Kazakov
2010-08-06 9:26 ` Ada novice
2010-08-06 9:51 ` Dmitry A. Kazakov
2010-08-06 12:04 ` Ada novice
2010-08-06 16:49 ` Simon Wright
2010-08-06 17:27 ` Dmitry A. Kazakov
2010-08-06 18:15 ` Ada novice
2010-08-06 20:26 ` Simon Wright
2010-08-07 0:46 ` John B. Matthews
2010-08-07 7:59 ` Dmitry A. Kazakov
2010-08-07 9:09 ` Georg Bauhaus
2010-08-07 12:33 ` John B. Matthews
2010-08-06 9:49 ` Peter Hermann
2010-08-06 12:03 ` Ada novice
2010-08-07 4:07 ` Randy Brukardt
2010-08-07 8:10 ` Ada novice
2010-08-06 16:41 ` Simon Wright
2010-08-06 8:39 ` sjw
2010-07-24 16:44 ` Dmitry A. Kazakov
2010-07-24 18:04 ` Ada novice
2010-07-24 19:16 ` Dmitry A. Kazakov
2010-07-25 0:22 ` tmoran
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox