Including include/log4cxx/helpers/tchar.h before the Win32 platform's tchar.h will result in compilation errors as the Win32 tchar.h's overrides the definitions of W2A, A2W, USES_CONVERSION etc. These compilation errors can be avoided by forcing the Win32's tchar.h to be loaded first, but at least in my case both tchar.h's were loaded indirectly, it tooks some sleuthing to figure out where the Platform tchar.h needed to be added.

It doesn't appear that log4cxx itself uses some of the offending macros, so I'm assuming that the they were provided as a convenience for library users, however providing a second implementation of platform provided macros could be confusing, especially since the log4cxx implementation has length limitations that I don't believe exist in the Platform provided implementation. For example, the message size limitation reported a few days ago, but be avoided by including the platform's tchar.h

I haven't really dug into this issue yet, but it did surprise me and maybe somebody could explain why the current state is a good thing.

Reply via email to