comp.lang.ada
 help / color / mirror / Atom feed
From: "Jeff C," <jcreem@yahoo.com>
Subject: Re: import errors
Date: Sun, 07 Mar 2004 19:10:33 GMT
Date: 2004-03-07T19:10:33+00:00	[thread overview]
Message-ID: <JsK2c.199055$uV3.806052@attbi_s51> (raw)
In-Reply-To: c2frbi$ac$1@nemesis.news.tpi.pl


"Szymon Guz" <guzo@stud.ics.p.lodz.pl> wrote in message
news:c2frbi$ac$1@nemesis.news.tpi.pl...
> Hi,
> I'm trying to make a binding to a dll library written in C++ and I'va
> got a problem. I have two types in one package and two procedures that
> are named the same:
>
> type A;
> type B is new A;
>
> procedure A(this:A_Access);
> procedure A(this:B_Access);
>
> and now I want to import them from the dll library, but writing sth like
>   this:
>
> pragma Import(C,A,"AAA");
> pragma Import(C,A,"BBB");
>
> generates some compiler errors, so I tried to do it in this way:
> the body of the procedures looks like this:
>
> procedure A(this:A_Access) is
>    procedure THIS_A(this:A_Access);
>    pragma Import(C,THIS_A,"AAA");
> begin
>    THIS_A(this);
> end;
>
> procedure A(this:B_Access) is
>    procedure THIS_A(this:B_Access);
>    pragma Import(C,THIS_A,"BBB");
> begin
>    THIS_A(this);
> end;
>
> I thought that it should work fine, but now I see that there is a
> compiler error which I don't undestand:
>
> undefined reference to 'AAA'
>
> So i've got two questions:
> what do I do wrong that I cannot import the functions in the *.adb file
> and I can in the *.ads file ?
> how can I import the functions ?


I am confused. At the end of your post you indicate that you cannot import
the functions in the .adb but
you can in the .ads file? But you don't show any examples of it. The one
error you are posting something (almost) specific for is
undefined reference to 'AAA' which if I am guessing correctly is not a
compiler error at all but is a linker error since it
can not find the symbol AAA.

1) Do you know for sure the linker name of the procedure you want is AAA?
2) Are you doing something (pragmas or linker switches to include a library
file that would contain this symbol?
3) You appear to be trying to bind to C++ (v.s. C) which is not very well
defined (i.e. There is no pragma Import(C++, X,X) in
the LRM). Have you done something in your C++ code to export the code to C
to make this rational?








  reply	other threads:[~2004-03-07 19:10 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-03-07 18:55 import errors Szymon Guz
2004-03-07 19:10 ` Jeff C, [this message]
2004-03-07 20:07   ` Szymon Guz
2004-03-10  2:18 ` Stephen Leake
replies disabled

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