comp.lang.ada
 help / color / mirror / Atom feed
From: Tucker Taft <stt@averstar.com>
Subject: Re: Calling C from Ada - link problem
Date: 2000/03/09
Date: 2000-03-09T17:57:41+00:00	[thread overview]
Message-ID: <38C7E615.A011C7FE@averstar.com> (raw)
In-Reply-To: 8a803u$906$1@nnrp1.deja.com

Ashley King wrote:
> 
> Hello everybody. I hope someone can help me.
> 
> I am trying to call a C function from Ada. I am using ObjectAda 7.1.1
> and MS Visual C++ 6. Everything compiles. When I try to link on the Ada
> side, I get the following error:
> 
> whatever.lib: fatal error LNK1106: invalid file or disk full: cannot
> seek to 0x...
> 
> My disk is definitely not full, and I have looked through past Usenet
> messages using Deja and none of the other suggestions or comments that I
> saw have made any difference.
> 
> The C project was created as a Win32 Dynamic-Link Library, and the build
> produces .DLL, .EXP and .LIB files plus some others. I have put the path
> that contains these files into the ObjectAda Project Settings under
> Search links of type Normal.
> 
> The Ada code I am using is, essentially:
> 
> WITH INTERFACES.C ;
> ...
> FUNCTION whatever RETURN INTERFACES.C.INT ;
> PRAGMA IMPORT ( C, whatever, "whatever" ) ;

ObjectAda has a number of conventions other than simply "C" which
allow you to be more specific about the calling convention and/or
specify whether you are exporting/importing as part of a DLL.
You might want to consult that part of the ObjectAda documentation 
that explains the options available for the "convention" argument to 
pragma Import.

> The C code I am using is, in full:
> 
> whatever.h:
> 
> #ifdef __cplusplus
> extern "C" {
> #endif
> __declspec(dllexport) int whatever();
> #ifdef __cplusplus
> }
> #endif
> 
> whatever.cpp:
> 
> #include "whatever.h"
> int whatever()
> {
>   return 12345;
> }
> 
> Thanks for any help.
> 
> Regards,
> Ashley

-- 
-Tucker Taft   stt@averstar.com   http://www.averstar.com/~stt/
Technical Director, Distributed IT Solutions  (www.averstar.com/tools)
AverStar (formerly Intermetrics, Inc.)   Burlington, MA  USA




  reply	other threads:[~2000-03-09  0:00 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-03-09  0:00 Calling C from Ada - link problem Ashley King
2000-03-09  0:00 ` Tucker Taft [this message]
2000-03-10  0:00   ` Ashley King
2000-03-09  0:00 ` Mike Dimmick
2000-03-10  0:00   ` Ashley King
2000-03-11  0:00     ` David Botton
2000-03-09  0:00 ` Robert Dewar
2000-03-09  0:00   ` Larry Kilgallen
2000-03-09  0:00 ` Rush Kester
2000-03-10  0:00   ` Ashley King
replies disabled

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