
Thread
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);