2010.02.15 13:16 "[Tiff] Using libtiff in Visual C++ 6.0", by Weichao Wang

2010.02.18 15:59 "Re: [Tiff] OT: Visual C++ runtimes (was: Using libtiff in Visual C++ 6.0)", by Edward Lam

> So... versions of MSVC later than 6.0 will be unable to link against
> the libtiff DLLs.

But this not quite. It would be true for a static library (because then there is only one runtime) but you can very well use several DLLs which themselves use different C++ or C runtimes in the same application. You just need to avoid doing malloc() of memory in one DLL and free() of it in another (which is bad design anyway).

It's a bit more complicated than that. In general, any structs you create with one runtime can't be safely used with a different runtime. For example, FILE * objects created with one runtime can't be used with another. We ran into this case when we had (accidentally) compiled libraries with both VC71 and VC8 runtimes. Another thing to be aware of is that at some point (I forget when now, VC8?), time_t changed from 32-bits to 64-bits so any functions that either directly (or indirectly) use time_t can't go across the runtimes either.

Regards,

-Edward