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

2010.02.17 12:18 "Re: [Tiff] Using libtiff in Visual C++ 6.0", by Weichao Wang

To the list I should still add Spike and Graeme.

To: jcupitt@gmail.com; kmyers1@clearwire.net

CC: bfriesen@simple.dallas.tx.us; tiff@lists.maptools.org; olivier@3delight.com; edward@sidefx.com

Date: Wed, 17 Feb 2010 12:56:32 +0100

Dear all,

To my question Bob, Olivier, Kevin, Edward and John have given valuable hints and made comments. Thanks to you all!

It seems that it's not that easy to use libtiff in a VC++ project. For the time being, I'll continue to use my (stupid) method as this:

system("tiffcp -c none ...");
read from uncompressed tiff file
process image data
write to uncompressed tiff file
system("tiffcp -c g4 ...");

Hints about this topic is welcome in the future, should someone have found other links or even a VC++ class is built for libtiff.

Weichao Wang

> From: jcupitt@gmail.com
> Date: Tue, 16 Feb 2010 21:43:39 +0000
> Subject: Re: [Tiff] Using libtiff in Visual C++ 6.0
> To: kmyers1@clearwire.net
> CC: bfriesen@simple.dallas.tx.us; weichao_wang@hotmail.com; tiff@lists.maptools.org
>
> On 16 February 2010 17:40, Kevin Myers <kmyers1@clearwire.net> wrote:
> > So, you're saying that he can't (easily?) link to a libtiff DLL that has
> > been built using GCC from an application that will be built using MSVC?
>
> I used to think that linking on *nix systems could get a little hairy,
> but it seems like it's fairly straightforward compared to Windows.
>
> My understanding of the issue (I'm not a Windows person, so I may not
> have this straight) is that things like mingw (ie. a gcc derivative
> that targets Windows) produce DLLs that are linked against MSVCRT.DLL,
> the standard C runtime that is present (in some form) on all Windows
> machines since win95. They use this runtime for two reasons: 1) it's
> everywhere, so installation of binaries which link against this is
> easy and 2) because you don't need to distribute and install a
> runtime, there are no licensing issues to consider.
>
> MSVC 6.0 also uses this runtime, so projects built with this compiler
> should work with the libtiff DLLs.
>
> Sadly, later MSVC versions use a different runtime, usually called
> msvcrt70.dll, or some higher number. MS changed the runtime name
> because the runtime doesn't just supply functions like malloc, printf
> and friends, it also supplies basic parts of C++, like the functions
> supporting exception handling. MSVC7 and later have a new exception
> system that breaks binary compatibility.
>
> So... versions of MSVC later than 6.0 will be unable to link against
> the libtiff DLLs.
>
> There is a workaround though. The Windows Driver Development Kit
> includes a compiler which is able to link against he old MSVCRT and
> which therefore should be able to use the libtiff DLLs. I think this
> blog post is supposed to be the definitive explanation of this idea:
>
> http://kobyk.wordpress.com/2007/07/20/dynamically-linking-with-msvcrtdll-using-visual-c-2005/
>
> However as Bob says this is probably not worth the candle. You should
> build your whole project with one compiler and not rely too strongly
> on binary compatibility between compiler versions.
>
> John

Hotmail: Trusted email with Microsoft’s powerful SPAM protection. Sign up now.

_________________________________________________________________

Hotmail: Trusted email with Microsoft’s powerful SPAM protection.

https://signup.live.com/signup.aspx?id=60969