This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Using setupapi.lib/h/dll from cygwin



> From: Larry Hall (RFK Partners, Inc) [mailto:lhall@rfk.com]
>
> At 06:56 PM 5/5/2001, Svein Erling Seldal wrote:
> >Well, how is this done?
> >
> >If I use: 'gcc -o foo foo.o'
> >Returns: foo.o(.text+0x1b):foo.c: undefined reference to
> >`_imp__SetupDiGetClassDevsA@16'
> >
> >If I use: 'gcc -o foo foo.o setupapi.lib'
> >Returns the same
>
>
> OK, what does the symbol in setupapi.lib look like?  What you did should
> work if the symbol is in the library and matches the reference exactly.

OK. I get your point:

My app requires "SetupDiGetClassDevs()". When compiled, it generates a
reference to "SetupDiGetClassDevsA@16" *or* "_imp__SetupDiGetClassDevsA@16"
(depending on wheter og not I edit the original MS setupapi.h file, where I
remove the #define WINSETUPAPI DECLSPEC_IMPORT setting or not).

Now, the MS provided setupapi.lib, however, defines these symbols as:
"_SetupDiGetClassDevsA" and its imported reference as
"__imp__SetupDiGetClassDevsA". That's why it isnt working.

So the fix to this problem is either: 1) I need to generate a libsetupapi.a
which uses the GNU naming method somehow. Or 2) tell the GNU compiler not to
use the '@16' postfix-scheme on this specific library/dll. Correct?


Regards,
Svein Erling Seldal


--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]