AWARE SYSTEMS
TIFF and LibTiff Mail List Archive

Thread

1999.10.23 12:01 "LIBTIFF support for Windows", by Jan Nijtmans
1999.10.23 12:03 "LIBTIFF support for Windows (+ attachement)", by Jan Nijtmans

1999.10.23 12:03 "LIBTIFF support for Windows (+ attachement)", by Jan Nijtmans

Oops, forgot the attachment. Here it is again.

================================================

Would the following patch make any chance to be
included in libtiff-3.5.3?

Rationale: In order to produce a Windows dll,
VC++ (and currently Borland and gcc as well)
support the "__declspec(dllexport)" tag to specify
which symbols should be exported. It would
make my life (and I'm sure a lot others) much
easier for me if libtiff included this in the
header files.

The implementation in this patch is identical
to the implementation in zlib-1.1.3. This
library has Windows support since ages.

If someone is interested in the Makefiles for
VC++ (4.x, 5.0, 6.0) or gcc-2.95 (mingw or cygwin
variant), I can supply those as well. I
successfully compiled libtiff with VC++ 5.0
and gcc-2.95-mingw, so if someone is interested
in those dll's, I can supply them as well.

Regards,

 --
 Jan Nijtmans, CMG Arnhem B.V.
 email: Jan.Nijtmans@wxs.nl (private)
        Jan.Nijtmans@cmg.nl (work)
 url: http://home.wxs.nl/~nijtmans/

*** tif_dir.h.orig      Tue Jul 27 23:50:27 1999
--- tif_dir.h   Sat Oct 16 17:22:00 1999
***************
*** 240,251 ****
  #if defined(__cplusplus)
  extern "C" {
  #endif
! extern        void _TIFFSetupFieldInfo(TIFF*);
! extern        void _TIFFMergeFieldInfo(TIFF*, const TIFFFieldInfo[], int);
! extern        void _TIFFPrintFieldInfo(TIFF*, FILE*);
! extern        const TIFFFieldInfo* _TIFFFindFieldInfo(TIFF*, ttag_t, TIFFDataType);
! extern        const TIFFFieldInfo* _TIFFFieldWithTag(TIFF*, ttag_t);
! extern        TIFFDataType _TIFFSampleToTagType(TIFF*);
  #if defined(__cplusplus)
  }
  #endif
--- 240,251 ----
  #if defined(__cplusplus)
  extern "C" {
  #endif
! extern        EXPORT(void,_TIFFSetupFieldInfo) (TIFF*);
! extern        EXPORT(void,_TIFFMergeFieldInfo) (TIFF*, const TIFFFieldInfo[], int);
! extern        EXPORT(void,_TIFFPrintFieldInfo) (TIFF*, FILE*);
! extern        EXPORT(const TIFFFieldInfo*,_TIFFFindFieldInfo) (TIFF*, ttag_t, TIFFDataType);
! extern        EXPORT(const TIFFFieldInfo*,_TIFFFieldWithTag) (TIFF*, ttag_t);
! extern        EXPORT(TIFFDataType,_TIFFSampleToTagType) (TIFF*);
  #if defined(__cplusplus)
  }
  #endif
*** tif_predict.h.orig  Tue Jul 27 23:50:27 1999
--- tif_predict.h       Sat Oct 16 17:22:00 1999
***************
*** 54,60 ****
  #if defined(__cplusplus)
  extern "C" {
  #endif
! extern        int TIFFPredictorInit(TIFF*);
  #if defined(__cplusplus)
  }
  #endif
--- 54,60 ----
  #if defined(__cplusplus)
  extern "C" {
  #endif
! extern        EXPORT(int,TIFFPredictorInit) (TIFF*);
  #if defined(__cplusplus)
  }
  #endif
*** tif_zip.c.orig      Tue Jul 27 23:50:27 1999
--- tif_zip.c   Sat Oct 16 17:22:00 1999
***************
*** 47,52 ****
--- 47,54 ----
   * last found at ftp://ftp.uu.net/pub/archiving/zip/zlib/zlib-0.99.tar.gz.
   */
  #include "tif_predict.h"

+ #undef EXPORT
  #include "zlib.h"
  
  #include <stdio.h>
*** tiff.h.orig Wed Sep  8 11:39:00 1999
--- tiff.h      Sat Oct 16 17:22:00 1999
***************
*** 77,82 ****
--- 77,100 ----
        TIS_EMPTY
  };
  
+ /* Compile with -DTIFF_DLL for Windows DLL support */
+ #if (defined(_WINDOWS) || defined(WINDOWS) || defined(__WIN32__)) && defined(TIFF_DLL)
+ #  define WIN32_LEAN_AND_MEAN
+ #  include <windows.h>
+ #  undef WIN32_LEAN_AND_MEAN
+ #  if defined(_MSC_VER)
+ #    define EXPORT(a,b) __declspec(dllexport) a b
+ #  else
+ #    if defined(__BORLANDC__)
+ #     define EXPORT(a,b) a _export b
+ #    endif
+ #  endif
+ #endif

+ #if !defined(EXPORT)
+ #  define EXPORT(a,b) a b
+ #endif

  typedef       struct {
        uint16  tiff_magic;     /* magic number (defines byte order) */
        uint16  tiff_version;   /* TIFF version number */
*** tiffio.h.orig       Sat Oct 16 17:22:57 1999
--- tiffio.h    Sat Oct 16 17:30:28 1999
***************
*** 207,323 ****
  typedef       void (*TIFFUnmapFileProc)(thandle_t, tdata_t, toff_t);
  typedef       void (*TIFFExtendProc)(TIFF*); 

! extern        const char* TIFFGetVersion(void);

! extern        const TIFFCodec* TIFFFindCODEC(uint16);
! extern        TIFFCodec* TIFFRegisterCODEC(uint16, const char*, TIFFInitMethod);
! extern        void TIFFUnRegisterCODEC(TIFFCodec*);
  
! extern        tdata_t _TIFFmalloc(tsize_t);
! extern        tdata_t _TIFFrealloc(tdata_t, tsize_t);
! extern        void _TIFFmemset(tdata_t, int, tsize_t);
! extern        void _TIFFmemcpy(tdata_t, const tdata_t, tsize_t);
! extern        int _TIFFmemcmp(const tdata_t, const tdata_t, tsize_t);
! extern        void _TIFFfree(tdata_t);

! extern        void TIFFClose(TIFF*);
! extern        int TIFFFlush(TIFF*);
! extern        int TIFFFlushData(TIFF*);
! extern        int TIFFGetField(TIFF*, ttag_t, ...);
! extern        int TIFFVGetField(TIFF*, ttag_t, va_list);
! extern        int TIFFGetFieldDefaulted(TIFF*, ttag_t, ...);
! extern        int TIFFVGetFieldDefaulted(TIFF*, ttag_t, va_list);
! extern        int TIFFReadDirectory(TIFF*);
! extern        tsize_t TIFFScanlineSize(TIFF*);
! extern        tsize_t TIFFRasterScanlineSize(TIFF*);
! extern        tsize_t TIFFStripSize(TIFF*);
! extern        tsize_t TIFFVStripSize(TIFF*, uint32);
! extern        tsize_t TIFFTileRowSize(TIFF*);
! extern        tsize_t TIFFTileSize(TIFF*);
! extern        tsize_t TIFFVTileSize(TIFF*, uint32);
! extern        uint32 TIFFDefaultStripSize(TIFF*, uint32);
! extern        void TIFFDefaultTileSize(TIFF*, uint32*, uint32*);
! extern        int TIFFFileno(TIFF*);
! extern        int TIFFGetMode(TIFF*);
! extern        int TIFFIsTiled(TIFF*);
! extern        int TIFFIsByteSwapped(TIFF*);
! extern        int TIFFIsUpSampled(TIFF*);
! extern        int TIFFIsMSB2LSB(TIFF*);
! extern        uint32 TIFFCurrentRow(TIFF*);
! extern        tdir_t TIFFCurrentDirectory(TIFF*);
! extern        tdir_t TIFFNumberOfDirectories(TIFF*);
! extern        uint32 TIFFCurrentDirOffset(TIFF*);
! extern        tstrip_t TIFFCurrentStrip(TIFF*);
! extern        ttile_t TIFFCurrentTile(TIFF*);
! extern        int TIFFReadBufferSetup(TIFF*, tdata_t, tsize_t);
! extern        int TIFFWriteBufferSetup(TIFF*, tdata_t, tsize_t);
! extern        int TIFFLastDirectory(TIFF*);
! extern        int TIFFSetDirectory(TIFF*, tdir_t);
! extern        int TIFFSetSubDirectory(TIFF*, uint32);
! extern        int TIFFUnlinkDirectory(TIFF*, tdir_t);
! extern        int TIFFSetField(TIFF*, ttag_t, ...);
! extern        int TIFFVSetField(TIFF*, ttag_t, va_list);
! extern        int TIFFWriteDirectory(TIFF *);
! extern        int TIFFReassignTagToIgnore(enum TIFFIgnoreSense, int);
  
  #if defined(c_plusplus) || defined(__cplusplus)
! extern        void TIFFPrintDirectory(TIFF*, FILE*, long = 0);
! extern        int TIFFReadScanline(TIFF*, tdata_t, uint32, tsample_t = 0);
! extern        int TIFFWriteScanline(TIFF*, tdata_t, uint32, tsample_t = 0);
! extern        int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int = 0);
  #else
! extern        void TIFFPrintDirectory(TIFF*, FILE*, long);
! extern        int TIFFReadScanline(TIFF*, tdata_t, uint32, tsample_t);
! extern        int TIFFWriteScanline(TIFF*, tdata_t, uint32, tsample_t);
! extern        int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int);
  #endif
  
! extern        int TIFFReadRGBAStrip(TIFF*, tstrip_t, uint32 * );
! extern        int TIFFReadRGBATile(TIFF*, uint32, uint32, uint32 * );
! extern        int TIFFRGBAImageOK(TIFF*, char [1024]);
! extern        int TIFFRGBAImageBegin(TIFFRGBAImage*, TIFF*, int, char [1024]);
! extern        int TIFFRGBAImageGet(TIFFRGBAImage*, uint32*, uint32, uint32);
! extern        void TIFFRGBAImageEnd(TIFFRGBAImage*);
! extern        TIFF* TIFFOpen(const char*, const char*);
! extern        TIFF* TIFFFdOpen(int, const char*, const char*);
! extern        TIFF* TIFFClientOpen(const char*, const char*,
            thandle_t,
            TIFFReadWriteProc, TIFFReadWriteProc,
            TIFFSeekProc, TIFFCloseProc,
            TIFFSizeProc,
            TIFFMapFileProc, TIFFUnmapFileProc);
! extern        const char* TIFFFileName(TIFF*);
! extern        void TIFFError(const char*, const char*, ...);
! extern        void TIFFWarning(const char*, const char*, ...);
! extern        TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler);
! extern        TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler);
! extern        TIFFExtendProc TIFFSetTagExtender(TIFFExtendProc);
! extern        ttile_t TIFFComputeTile(TIFF*, uint32, uint32, uint32, tsample_t);
! extern        int TIFFCheckTile(TIFF*, uint32, uint32, uint32, tsample_t);
! extern        ttile_t TIFFNumberOfTiles(TIFF*);
! extern        tsize_t TIFFReadTile(TIFF*,
            tdata_t, uint32, uint32, uint32, tsample_t);
! extern        tsize_t TIFFWriteTile(TIFF*,
            tdata_t, uint32, uint32, uint32, tsample_t);
! extern        tstrip_t TIFFComputeStrip(TIFF*, uint32, tsample_t);
! extern        tstrip_t TIFFNumberOfStrips(TIFF*);
! extern        tsize_t TIFFReadEncodedStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
! extern        tsize_t TIFFReadRawStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
! extern        tsize_t TIFFReadEncodedTile(TIFF*, ttile_t, tdata_t, tsize_t);
! extern        tsize_t TIFFReadRawTile(TIFF*, ttile_t, tdata_t, tsize_t);
! extern        tsize_t TIFFWriteEncodedStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
! extern        tsize_t TIFFWriteRawStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
! extern        tsize_t TIFFWriteEncodedTile(TIFF*, ttile_t, tdata_t, tsize_t);
! extern        tsize_t TIFFWriteRawTile(TIFF*, ttile_t, tdata_t, tsize_t);
! extern        void TIFFSetWriteOffset(TIFF*, toff_t);
! extern        void TIFFSwabShort(uint16*);
! extern        void TIFFSwabLong(uint32*);
! extern        void TIFFSwabDouble(double*);
! extern        void TIFFSwabArrayOfShort(uint16*, unsigned long);
! extern        void TIFFSwabArrayOfLong(uint32*, unsigned long);
! extern        void TIFFSwabArrayOfDouble(double*, unsigned long);
! extern        void TIFFReverseBits(unsigned char *, unsigned long);
! extern        const unsigned char* TIFFGetBitRevTable(int);
  #if defined(__cplusplus)
  }
  #endif
--- 207,323 ----
  typedef       void (*TIFFUnmapFileProc)(thandle_t, tdata_t, toff_t);
  typedef       void (*TIFFExtendProc)(TIFF*); 

! extern        EXPORT(const char*,TIFFGetVersion) (void);

! extern        EXPORT(const TIFFCodec*,TIFFFindCODEC) (uint16);
! extern        EXPORT(TIFFCodec*,TIFFRegisterCODEC) (uint16, const char*, TIFFInitMethod);
! extern        EXPORT(void,TIFFUnRegisterCODEC) (TIFFCodec*);
  
! extern        EXPORT(tdata_t,_TIFFmalloc) (tsize_t);
! extern        EXPORT(tdata_t,_TIFFrealloc) (tdata_t, tsize_t);
! extern        EXPORT(void,_TIFFmemset) (tdata_t, int, tsize_t);
! extern        EXPORT(void,_TIFFmemcpy) (tdata_t, const tdata_t, tsize_t);
! extern        EXPORT(int,_TIFFmemcmp) (const tdata_t, const tdata_t, tsize_t);
! extern        EXPORT(void,_TIFFfree) (tdata_t);

! extern        EXPORT(void,TIFFClose) (TIFF*);
! extern        EXPORT(int,TIFFFlush) (TIFF*);
! extern        EXPORT(int,TIFFFlushData) (TIFF*);
! extern        EXPORT(int,TIFFGetField) (TIFF*, ttag_t, ...);
! extern        EXPORT(int,TIFFVGetField) (TIFF*, ttag_t, va_list);
! extern        EXPORT(int,TIFFGetFieldDefaulted) (TIFF*, ttag_t, ...);
! extern        EXPORT(int,TIFFVGetFieldDefaulted) (TIFF*, ttag_t, va_list);
! extern        EXPORT(int,TIFFReadDirectory) (TIFF*);
! extern        EXPORT(tsize_t,TIFFScanlineSize) (TIFF*);
! extern        EXPORT(tsize_t,TIFFRasterScanlineSize) (TIFF*);
! extern        EXPORT(tsize_t,TIFFStripSize) (TIFF*);
! extern        EXPORT(tsize_t,TIFFVStripSize) (TIFF*, uint32);
! extern        EXPORT(tsize_t,TIFFTileRowSize) (TIFF*);
! extern        EXPORT(tsize_t,TIFFTileSize) (TIFF*);
! extern        EXPORT(tsize_t,TIFFVTileSize) (TIFF*, uint32);
! extern        EXPORT(uint32,TIFFDefaultStripSize) (TIFF*, uint32);
! extern        EXPORT(void,TIFFDefaultTileSize) (TIFF*, uint32*, uint32*);
! extern        EXPORT(int,TIFFFileno) (TIFF*);
! extern        EXPORT(int,TIFFGetMode) (TIFF*);
! extern        EXPORT(int,TIFFIsTiled) (TIFF*);
! extern        EXPORT(int,TIFFIsByteSwapped) (TIFF*);
! extern        EXPORT(int,TIFFIsUpSampled) (TIFF*);
! extern        EXPORT(int,TIFFIsMSB2LSB) (TIFF*);
! extern        EXPORT(uint32,TIFFCurrentRow) (TIFF*);
! extern        EXPORT(tdir_t,TIFFCurrentDirectory) (TIFF*);
! extern        EXPORT(tdir_t,TIFFNumberOfDirectories) (TIFF*);
! extern        EXPORT(uint32,TIFFCurrentDirOffset) (TIFF*);
! extern        EXPORT(tstrip_t,TIFFCurrentStrip) (TIFF*);
! extern        EXPORT(ttile_t,TIFFCurrentTile) (TIFF*);
! extern        EXPORT(int,TIFFReadBufferSetup) (TIFF*, tdata_t, tsize_t);
! extern        EXPORT(int,TIFFWriteBufferSetup) (TIFF*, tdata_t, tsize_t);
! extern        EXPORT(int,TIFFLastDirectory) (TIFF*);
! extern        EXPORT(int,TIFFSetDirectory) (TIFF*, tdir_t);
! extern        EXPORT(int,TIFFSetSubDirectory) (TIFF*, uint32);
! extern        EXPORT(int,TIFFUnlinkDirectory) (TIFF*, tdir_t);
! extern        EXPORT(int,TIFFSetField) (TIFF*, ttag_t, ...);
! extern        EXPORT(int,TIFFVSetField) (TIFF*, ttag_t, va_list);
! extern        EXPORT(int,TIFFWriteDirectory) (TIFF *);
! extern        EXPORT(int,TIFFReassignTagToIgnore) (enum TIFFIgnoreSense, int);
  
  #if defined(c_plusplus) || defined(__cplusplus)
! extern        EXPORT(void,TIFFPrintDirectory) (TIFF*, FILE*, long = 0);
! extern        EXPORT(int,TIFFReadScanline) (TIFF*, tdata_t, uint32, tsample_t = 0);
! extern        EXPORT(int,TIFFWriteScanline) (TIFF*, tdata_t, uint32, tsample_t = 0);
! extern        EXPORT(int,TIFFReadRGBAImage) (TIFF*, uint32, uint32, uint32*, int = 0);
  #else
! extern        EXPORT(void,TIFFPrintDirectory) (TIFF*, FILE*, long);
! extern        EXPORT(int,TIFFReadScanline) (TIFF*, tdata_t, uint32, tsample_t);
! extern        EXPORT(int,TIFFWriteScanline) (TIFF*, tdata_t, uint32, tsample_t);
! extern        EXPORT(int,TIFFReadRGBAImage) (TIFF*, uint32, uint32, uint32*, int);
  #endif
  
! extern        EXPORT(int,TIFFReadRGBAStrip) (TIFF*, tstrip_t, uint32 * );
! extern        EXPORT(int,TIFFReadRGBATile) (TIFF*, uint32, uint32, uint32 * );
! extern        EXPORT(int,TIFFRGBAImageOK) (TIFF*, char [1024]);
! extern        EXPORT(int,TIFFRGBAImageBegin) (TIFFRGBAImage*, TIFF*, int, char [1024]);
! extern        EXPORT(int,TIFFRGBAImageGet) (TIFFRGBAImage*, uint32*, uint32, uint32);
! extern        EXPORT(void,TIFFRGBAImageEnd) (TIFFRGBAImage*);
! extern        EXPORT(TIFF*,TIFFOpen) (const char*, const char*);
! extern        EXPORT(TIFF*,TIFFFdOpen) (int, const char*, const char*);
! extern        EXPORT(TIFF*,TIFFClientOpen) (const char*, const char*,
            thandle_t,
            TIFFReadWriteProc, TIFFReadWriteProc,
            TIFFSeekProc, TIFFCloseProc,
            TIFFSizeProc,
            TIFFMapFileProc, TIFFUnmapFileProc);
! extern        EXPORT(const char*,TIFFFileName) (TIFF*);
! extern        EXPORT(void,TIFFError) (const char*, const char*, ...);
! extern        EXPORT(void,TIFFWarning) (const char*, const char*, ...);
! extern        EXPORT(TIFFErrorHandler,TIFFSetErrorHandler) (TIFFErrorHandler);
! extern        EXPORT(TIFFErrorHandler,TIFFSetWarningHandler) (TIFFErrorHandler);
! extern        EXPORT(TIFFExtendProc,TIFFSetTagExtender) (TIFFExtendProc);
! extern        EXPORT(ttile_t,TIFFComputeTile) (TIFF*, uint32, uint32, uint32, tsample_t);
! extern        EXPORT(int,TIFFCheckTile) (TIFF*, uint32, uint32, uint32, tsample_t);
! extern        EXPORT(ttile_t,TIFFNumberOfTiles) (TIFF*);
! extern        EXPORT(tsize_t,TIFFReadTile) (TIFF*,
            tdata_t, uint32, uint32, uint32, tsample_t);
! extern        EXPORT(tsize_t,TIFFWriteTile) (TIFF*,
            tdata_t, uint32, uint32, uint32, tsample_t);
! extern        EXPORT(tstrip_t,TIFFComputeStrip) (TIFF*, uint32, tsample_t);
! extern        EXPORT(tstrip_t,TIFFNumberOfStrips) (TIFF*);
! extern        EXPORT(tsize_t,TIFFReadEncodedStrip) (TIFF*, tstrip_t, tdata_t, tsize_t);
! extern        EXPORT(tsize_t,TIFFReadRawStrip) (TIFF*, tstrip_t, tdata_t, tsize_t);
! extern        EXPORT(tsize_t,TIFFReadEncodedTile) (TIFF*, ttile_t, tdata_t, tsize_t);
! extern        EXPORT(tsize_t,TIFFReadRawTile) (TIFF*, ttile_t, tdata_t, tsize_t);
! extern        EXPORT(tsize_t,TIFFWriteEncodedStrip) (TIFF*, tstrip_t, tdata_t, tsize_t);
! extern        EXPORT(tsize_t,TIFFWriteRawStrip) (TIFF*, tstrip_t, tdata_t, tsize_t);
! extern        EXPORT(tsize_t,TIFFWriteEncodedTile) (TIFF*, ttile_t, tdata_t, tsize_t);
! extern        EXPORT(tsize_t,TIFFWriteRawTile) (TIFF*, ttile_t, tdata_t, tsize_t);
! extern        EXPORT(void,TIFFSetWriteOffset) (TIFF*, toff_t);
! extern        EXPORT(void,TIFFSwabShort) (uint16*);
! extern        EXPORT(void,TIFFSwabLong) (uint32*);
! extern        EXPORT(void,TIFFSwabDouble) (double*);
! extern        EXPORT(void,TIFFSwabArrayOfShort) (uint16*, unsigned long);
! extern        EXPORT(void,TIFFSwabArrayOfLong) (uint32*, unsigned long);
! extern        EXPORT(void,TIFFSwabArrayOfDouble) (double*, unsigned long);
! extern        EXPORT(void,TIFFReverseBits) (unsigned char *, unsigned long);
! extern        EXPORT(const unsigned char*,TIFFGetBitRevTable) (int);
  #if defined(__cplusplus)
  }
  #endif
*** tiffiop.h.orig      Tue Jul 27 23:50:27 1999
--- tiffiop.h   Sat Oct 16 17:22:00 1999
***************
*** 198,232 ****
  #if defined(__cplusplus)
  extern "C" {
  #endif
! extern        int _TIFFgetMode(const char*, const char*);
! extern        int _TIFFNoRowEncode(TIFF*, tidata_t, tsize_t, tsample_t);
! extern        int _TIFFNoStripEncode(TIFF*, tidata_t, tsize_t, tsample_t);
! extern        int _TIFFNoTileEncode(TIFF*, tidata_t, tsize_t, tsample_t);
! extern        int _TIFFNoRowDecode(TIFF*, tidata_t, tsize_t, tsample_t);
! extern        int _TIFFNoStripDecode(TIFF*, tidata_t, tsize_t, tsample_t);
! extern        int _TIFFNoTileDecode(TIFF*, tidata_t, tsize_t, tsample_t);
! extern        void _TIFFNoPostDecode(TIFF*, tidata_t, tsize_t);
! extern        int _TIFFNoSeek(TIFF*, uint32);
! extern        void _TIFFSwab16BitData(TIFF*, tidata_t, tsize_t);
! extern        void _TIFFSwab32BitData(TIFF*, tidata_t, tsize_t);
! extern        void _TIFFSwab64BitData(TIFF*, tidata_t, tsize_t);
! extern        int TIFFFlushData1(TIFF*);
! extern        void TIFFFreeDirectory(TIFF*);
! extern        int TIFFDefaultDirectory(TIFF*);
! extern        int TIFFSetCompressionScheme(TIFF*, int);
! extern        int TIFFSetDefaultCompressionState(TIFF*);
! extern        uint32 _TIFFDefaultStripSize(TIFF*, uint32);
! extern        void _TIFFDefaultTileSize(TIFF*, uint32*, uint32*);

! extern        void _TIFFsetByteArray(void**, void*, long);
! extern        void _TIFFsetString(char**, char*);
! extern        void _TIFFsetShortArray(uint16**, uint16*, long);
! extern        void _TIFFsetLongArray(uint32**, uint32*, long);
! extern        void _TIFFsetFloatArray(float**, float*, long);
! extern        void _TIFFsetDoubleArray(double**, double*, long);
  
! extern        void _TIFFprintAscii(FILE*, const char*);
! extern        void _TIFFprintAsciiTag(FILE*, const char*, const char*);

GLOBALDATA(TIFFErrorHandler,_TIFFwarningHandler);

GLOBALDATA(TIFFErrorHandler,_TIFFerrorHandler); --- 198,232 ----

  #if defined(__cplusplus)
  extern "C" {
  #endif

! extern        EXPORT(int,_TIFFgetMode) (const char*, const char*);
! extern        EXPORT(int,_TIFFNoRowEncode) (TIFF*, tidata_t, tsize_t, tsample_t);
! extern        EXPORT(int,_TIFFNoStripEncode) (TIFF*, tidata_t, tsize_t, tsample_t);
! extern        EXPORT(int,_TIFFNoTileEncode) (TIFF*, tidata_t, tsize_t, tsample_t);
! extern        EXPORT(int,_TIFFNoRowDecode) (TIFF*, tidata_t, tsize_t, tsample_t);
! extern        EXPORT(int,_TIFFNoStripDecode) (TIFF*, tidata_t, tsize_t, tsample_t);
! extern        EXPORT(int,_TIFFNoTileDecode) (TIFF*, tidata_t, tsize_t, tsample_t);
! extern        EXPORT(void,_TIFFNoPostDecode) (TIFF*, tidata_t, tsize_t);
! extern        EXPORT(int,_TIFFNoSeek) (TIFF*, uint32);
! extern        EXPORT(void,_TIFFSwab16BitData) (TIFF*, tidata_t, tsize_t);
! extern        EXPORT(void,_TIFFSwab32BitData) (TIFF*, tidata_t, tsize_t);
! extern        EXPORT(void,_TIFFSwab64BitData) (TIFF*, tidata_t, tsize_t);
! extern        EXPORT(int,TIFFFlushData1) (TIFF*);
! extern        EXPORT(void,TIFFFreeDirectory) (TIFF*);
! extern        EXPORT(int,TIFFDefaultDirectory) (TIFF*);
! extern        EXPORT(int,TIFFSetCompressionScheme) (TIFF*, int);
! extern        EXPORT(void,_TIFFSetDefaultCompressionState) (TIFF*);
! extern        EXPORT(uint32,_TIFFDefaultStripSize) (TIFF*, uint32);
! extern        EXPORT(void,_TIFFDefaultTileSize) (TIFF*, uint32*, uint32*);
  
! extern        EXPORT(void,_TIFFsetByteArray) (void**, void*, long);
! extern        EXPORT(void,_TIFFsetString) (char**, char*);
! extern        EXPORT(void,_TIFFsetShortArray) (uint16**, uint16*, long);
! extern        EXPORT(void,_TIFFsetLongArray) (uint32**, uint32*, long);
! extern        EXPORT(void,_TIFFsetFloatArray) (float**, float*, long);
! extern        EXPORT(void,_TIFFsetDoubleArray) (double**, double*, long);
  
! extern        EXPORT(void,_TIFFprintAscii) (FILE*, const char*);
! extern        EXPORT(void,_TIFFprintAsciiTag) (FILE*, const char*, const char*);

GLOBALDATA(TIFFErrorHandler,_TIFFwarningHandler);

GLOBALDATA(TIFFErrorHandler,_TIFFerrorHandler);