From: Anton Gluck (gluc_at_[hidden])
Date: 2000-10-16 15:01:16
Thanks for your reply, it is very instructive. I'll look into this
On Mon, 16 Oct 2000, Lois Goldthwaite wrote:
> The message about LIBCD means that this module has been built using the
> /MLd (use debug single-threaded static C runtime library) option, and
> some other bit has been built with a different option.
> /ML(d) is the compiler default, but my personal recommendation on
> Windows is always to use /MD(d) -- the multi-threaded DLL runtime. With
> any of the static runtime options, each DLL and executable has its own
> memory manager, and if you pass allocated memory across a boundary
> (including things like returning by value a class whose constructor
> involves allocating memory for internal use), then you can run into the
> dreaded "debug heap allocation error" messages. With /MD(d), then
> everything shares the same memory manager.
> That is an over-simplification, but the complications of using /ML in
> conjunction with DLLs I haven't wanted to grapple with. See article
> Q94248 in the MSDN knowledge base for more gory details.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk