From: Paul M. <pf_...@ya...> - 2007-04-21 11:54:20
|
Brian Dessent wrote: > I don't know why it doesn't work. It should. You can use nm to see the > symbols of an .a/.lib file, but you'll need to do some filtering as it's > drinking from the firehose: > > nm -P libkernel32.a | egrep '^[^ ]+ T' Got it! I knew there would be a way, but I'd forgotten about nm. nm -P TakeCmd.lib | egrep "^[^ ]+ T" .text T 00000000 ?ASCIIToUnicode@@YGXPADPA_WH@Z T 00000000 Judging by the name mangling, the *&^%*"(^! import library is for C++!!! Given that the DLL is (as far as I know) quite usable from C, I don't know why they've done this. At least now I know it's an issue with the provided SDK, and I can go back to the supplier. > Yes, this works in the opposite situation as what you have. My point > before was that it should be possible for ld to also provide the inverse > of --enable-stdcall-fixup, for the situation you're in. Ah, I see now. Just for curiosity, in what sort of situation would --enable-stdcall-fixup be useful? About all I can think of is for linking something written in assembler using unmangled names, to a C library using mangled ones. That seems pretty obscure... Anyway, thanks for your help. Paul. |