Hello all,
I ran today in a problem when trying to link with WinDDK 2k3 SP1 linker an
application build with WinDDK 2k3 SP1 compiler and a 3rd party library built
with VS C++ 2003. It looks to me the name mangling is different and
incompatible, leading to errors such as:
error LNK2001: unresolved external symbol “__declspec(dllimport) public:
__thiscall std::basic_string,class
std::allocator >::basic_stringstd::char_traits,class std::allocator >(char const *)”
(_imp??0?$basic_string@DU?$xxxxx@xxxxx@std@@V?$allocator@D@2@@std@@QAE@P
BD@Z)
(A huge amount of them, got at the end:
ddkbuild complete
ABuildUNTi386 - 3212 error(s), 89 warning(s))
Using dumpbin on the 3rd party lib and on the msvcprtd.lib of WinDDK 2k3
SP1, the naming conventions looked different to me. Checking VS C++ 2003
libs, their msvcprtd.lib looks much much different (for instance, 1.3 Mb
instead of the 800 kb of the WinDDK version). The x64 and IA64 versions of
the libs do not have the same issue as the Platform SDK 2k3 sp1 includes
libs compatible with WinDDK. But there is no i386 version of msvcprtd.lib in
this Platform SDK.
Working with the 3rd party, we couldn’t find any compiler option on any side
to make them work together, so the 3rd party is working on learning WinDDK
and producing a new version of its lib, a WinDDK-compatible one. Needless to
say this is lot of work.
Does anyone has an easier solution?
Best regards,
David Burg
----------------------------------------------------------------
David Burg
Software Development,
InCD and Low Level Drivers Project Leader
Nero AG
Im Stoeckmaedle 18 fax: +49 (0)7248 928 299
76307 Karlsbad email: xxxxx@nero.com
Germany http://www.nero.com
----------------------------------------------------------------