2005.03.14 15:54 "[Tiff] libTIFF 3.7.1 vs. Borland C++ Builder 5", by Roger Watkins
I am indeed a newbie here. I have been programming in C for 20+ years, and have written various types of programs for personal and internal use at the various companies that have employed me, and a couple of embedded control applications in end products. Total coding experience probably around 6MB source. A couple of years ago I started at the present company, which currently requires code written under Borland C++ Builder 5 (yes, I know, it's antique and not MicroSoft VC++).
I have had no success compiling 3.7.1 on BCB5. The current problem is that the CODECs are not initialized when a strip is read. The program successfully calls TIFFOpen(). The tags are read and can be retrieved using TIFFGetField() and TIFFGetScanlineSize(), but when TIFFReadEncodedStrip() is called, an error message that the CODEC is not initialized results. Tracing the code, it seems that a call to (*tif->tif_setupdecode)(tif) in line 557 of tif_read.c() is the cause of the problem. This currently points to _notConfigured() at line 102 in tif_codec.c and the result is the program will not decode the Group 4 TIFF strip. This point is the result of the header files set to default to the not configured state.
After looking through the archive history, I noted that 3.7 is a step towards not using only .h files only for setup, and that compiler specific make files are now being used. Upon reading the documentation internally and in the posted html pages, it seems that the backup is still .h file configuration. The documentation further says the CODEC configuration should be automatically set so that no overt call to TIFFSetCompressionScheme() should be needed. I have checked to ensure what seems to be an appropriate tiff_fax3sm.c file exists in the distributed material, and that a reasonable tiffvers.h is also there. I have included what seems to be the proper list of files in a BCB5 project to build a library... Still the problem persists.
Has anyone out there got any suggestions that might help (other than driving my bosses to change to VC++)?