<div class="gmail_quote">On Tue, Aug 31, 2010 at 4:54 AM, M.-A. Lemburg <span dir="ltr">&lt;<a href="mailto:mal@egenix.com">mal@egenix.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">
</div>Is it possible to have multiple versions of the lib C loaded<br>
on Windows ?<br></blockquote><div><br>Yes, and it&#39;s a pretty common situation.   The fopen() that I call within a DLL may not be the same fopen() called by another DLL.  When writing a DLL for Windows, the API must be designed with the assumption that anything returned by the C library cannot be passed a different C library.  For example, suppose I a expose a function in my DLL that allocates some memory, populates it with useful information, and returns a pointer.  I must also supply a function to free the memory.  I cannot ask the caller to simply call free(), because their free() may not be using the same heap as my malloc().  <br>
<br>Likewise, a FILE * isn&#39;t safe to pass around, unless I can guarantee that the application really is one big happy family compiled against the same version of the C library.<br></div></div><div style="margin: 2em 0pt;" name="sig_2341e11ee1">
--<br>
Daniel Stutzbach, Ph.D.<br>
President, <a href="http://stutzbachenterprises.com">Stutzbach Enterprises, LLC</a>
</div>