   linker error help
  I'm trying to use a map  ( std::map<int, int> KeyMap; ) and I get a linker error:1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: __thiscall std::_Container_base_secure::~_Container_base_secure(void)" (??1_Container_base_secure@std@@QAE@XZ) already defined in libinput_d.lib(BaseInputManager.obj)1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: __thiscall std::_Container_base_secure::_Container_base_secure(void)" (??0_Container_base_secure@std@@QAE@XZ) already defined in libinput_d.lib(BaseInputManager.obj)I'm making a directInput wrapper that derives from a base interface which uses an std queue, and that's all I can see that is related to my map.  It might also have to do with the libinput_d.lib.  I'm not very familiar with how that works.  This project is something I'm just helping out on.  What could be the deal?   
  Where did you get the .lib file from? Any chance of rebuilding it from source?   ;  I have the source code for the libs.  A whole framework was supplied to me and  each project gets compiled into a lib.  I'm not using those .libs in my project (I am using 3 .libs needed for direct Input though, see below) but I am including some of those projects in my solution so I could derive a class.  Perhaps I should be using the .libs?  What's your suggestion?libs included in my project:#pragma comment (lib, "dinput")#pragma comment (lib, "dxguid")#pragma comment (lib, "dinput8")[Edited by - Timptation on May 5, 2009 6:50:56 PM];  Ok, figured it out.  I don't understand what the difference is, but I was using the wrong runtime library.  My project setting for C/C++ code generation was /MDd instead of /MTd.  If anyone cares to explain that then maybe I'll learn something lol.  I guess the standard libraries that come with visual studio have different versions for multithreaded projects and stuff.  Some time I'll have to learn the difference between them.   ;  This option basically controls how your program uses the standard library functions. In the static link case (/MTd) you actually bundle the standard library code you need into the program's EXE file directly. In the dynamic link case (/MDd) you tell the compiler that you will provide the standard library code in a separate DLL file, distinct from the program EXE file.If you're interested in the fine details, google for "static linking" and "dynamic linking."   