
using _variant_t rather than _bstr_t causing linker error LNK2005
Hi All,
I have a Win32 Dll (not using MFC). Within it, I have a class that has the following member variable:
#include <comdef.h>
#include <map>
...
std::map<_bstr_t, std::map<_bstr_t, _bstr_t> > m_mapMVSCollection;
This compiles and links just fine. When I change the above line to:
std::map<_bstr_t, std::map<_bstr_t, _variant_t> > m_mapMVSCollection;
I get the following linker errors and warnings.
Linking...
LIBCMTD.lib(dbgheap.obj) : error LNK2005: __malloc_dbg already defined in msvcrtd.lib(MSVCRTD.dll)
LIBCMTD.lib(dbgheap.obj) : error LNK2005: __free_dbg already defined in msvcrtd.lib(MSVCRTD.dll)
LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xc_z already defined in msvcrtd.lib(cinitexe.obj)
LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xc_a already defined in msvcrtd.lib(cinitexe.obj)
LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xi_z already defined in msvcrtd.lib(cinitexe.obj)
LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xi_a already defined in msvcrtd.lib(cinitexe.obj)
LIBCMTD.lib(dbgheap.obj) : warning LNK4006: __malloc_dbg already defined in msvcrtd.lib(MSVCRTD.dll); second definition ignored
LIBCMTD.lib(dbgheap.obj) : warning LNK4006: __free_dbg already defined in msvcrtd.lib(MSVCRTD.dll); second definition ignored
LIBCMTD.lib(crt0init.obj) : warning LNK4006: ___xc_z already defined in msvcrtd.lib(cinitexe.obj); second definition ignored
LIBCMTD.lib(crt0init.obj) : warning LNK4006: ___xc_a already defined in msvcrtd.lib(cinitexe.obj); second definition ignored
LIBCMTD.lib(crt0init.obj) : warning LNK4006: ___xi_z already defined in msvcrtd.lib(cinitexe.obj); second definition ignored
LIBCMTD.lib(crt0init.obj) : warning LNK4006: ___xi_a already defined in msvcrtd.lib(cinitexe.obj); second definition ignored
Creating library Debug/MyDll.lib and object Debug/MyDll.exp
LINK : warning LNK4098: defaultlib "LIBCMTD" conflicts with use of other libs; use /NODEFAULTLIB:library
LIBCMTD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/MyDll.dll : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Any advice would be greatly appreciated.
Thanks,
Tony