views:

52

answers:

1

I'd like to learn what various code libraries, which I think are all Microsoft's, do. Example libraries include atls.lib, atlsd.lib, libcmtd.lib, libcpmtd.lib. Would you point me to a good online reference or other way to learn about these libraries?

Clarification: I'm hoping to find an index of sorts for learning about Microsoft libraries in general. Sadly, when I search the web for something like "libcmtd", I just get posts on forums from people having problems with their code. Since Google doesn't report anything promising looking within the first few pages, there might not be anything, but it's worth asking.

+1  A: 

ATLS.LIB is the static version of ATL. (ATLSD.LIB is the debug version of that.) ATL documentation starts here: http://msdn.microsoft.com/en-us/library/t9adwcde.aspx

LIBCMTD.LIB and LIBCPMTD.LIB are the debug versions of the C and C++ runtime libraries. They're pretty standard implementations, so any C and C++ library reference will do. Microsoft has them documented on MSDN.

By "debug versions", I mean that these versions of the libraries have extra checking in them to help uncover bugs at run-time. These are generally appropriate for your debug builds. When building your release build, you probably want the regular versions which drop the final 'd' from the file names.

Adrian McCarthy
... and the 'mt' suffix means that it's safe to call this library from multi-threaded code (e.g. so that it's safe for multiple threads to call 'malloc' or 'operator new').
ChrisW
Also, at least for mscrtdXX, the debug version is not included in the VSXXX redistributable package, so you cannot distribute a program compiled against the debug C runtime. I'm not sure if it's a legal reason or just out of convention.
Mark Rushakoff