
Thread
2008.05.26 18:02 "Re: [Tiff] beta2 release - lfind() problem on Win64", by Edward Lam
Hi Andrey,
Speaking of the port/ code, we use this on our project for strcasecmp():
#ifdef WIN32
#define strcasecmp(ST1,ST2) stricmp((ST1),(ST2))
#define strncasecmp(ST1,ST2,N) strnicmp((ST1),(ST2),(N))
#endif
Cheers,
-Edward
On Mon, May 26, 2008 at 10:31:36AM -0500, Bob Friesenhahn wrote:
The recent libtiff updates in this area were necessary so that libtiff works properly in 64-bit applications. This is supposed to be the prototype for lfind:
void *lfind(const void *key, const void *base, size_t *nelp,
size_t width, int (*compar)(const void *, const void *));
It seems that the only cure is to add Windows specific code to handle this specific case.
We have such a code (see port/ directory) and it was used on Windows platform until I discovered that lfind is hidden under _lfind name there. So we can just continue using our implementation.
Other option is to use _lfind_s() function which is advertised as a "safe" replacement to the old one, but then we will need to modify comparison functions declarations too, because _lfind_s passes extra parameter down there. The first way is simpler, of course.
Best regards,
AndreyPS.
OFF: do they seriously thinking that their "safe" functions really help people?