----Original Message----
>From: Gerrit P. Haase
>Sent: 30 June 2005 21:09
> Ok, I try to build a Cygwin application that requires CAPI functions
> which are installed with the drivers for an ISDN card, the DLL is named
> capi2032.dll, I have an import library which comes from the manufacturer
> AVM but this contains symbols not included in the DLL or elsewhere.
> 
> In the .lib library are these symbols:
> 
> $ nm capi2032.lib | grep ' T '

> 00000000 T [EMAIL PROTECTED]

  That's a stdcall symbol.

> in the import library I created are these symbols:
> 
> $ nm libcapi2032.dll.a | grep ' T '

> 00000000 T _CAPI_INSTALLED

  That's a cdecl symbol.

> Where does the @0 in capi20.o: [EMAIL PROTECTED] came from?

  It comes from it being a stdcall symbol.
 
> I see in the source:
> 
> extern DWORD APIENTRY CAPI_INSTALLED (void);
> 
> unsigned CAPI20_ISINSTALLED (void) {
> #if defined(CYGWIN) || defined(WIN32)
>      return (unsigned)CAPI_INSTALLED () == 0;
> #elif defined(LINUX)
>      return capi20_isinstalled() == CapiNoError;
> #endif
> 
> 
> So why does the compiler creats a reference to [EMAIL PROTECTED] or
> is it the linker who wants to resolve CAPI_INSTALLED with @0 attached.

  Has the definition of APIENTRY has changed between the mfr's build from
which the import library came and the build from which you generated your
import lib?

    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to