logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Modrall" <MModr...@glgroup.com>
Subject RE: building nteventlogappender.dll?
Date Thu, 14 Jun 2007 14:24:23 GMT
Hi Curt...


This e-mail message, and any attachments, is intended only for the use of the individual or
entity identified in the alias address of this message and may contain information that is
confidential, privileged and subject to legal restrictions and penalties regarding its unauthorized
disclosure and use. Any unauthorized review, copying, disclosure, use or distribution is strictly
prohibited. If you have received this e-mail message in error, please notify the sender immediately
by reply e-mail and delete this message, and any attachments, from your system. Thank you.


>The missing include files are likely the output of javah and are
therefore derived from the corresponding Java files and are not included
in the distribution.  


>If you look at src/ntdll/build.xml, the build sequence should be fairly
obvious.  The Win32 NTEventLogAppender.dll is built using MinGW to allow
the release to be built without requiring developers to have a license
of some particular version of Microsoft Visual Studio.  However, I do
not know of a free compiler for Win64.


            Thanks for the response.  After I posted, I'd done some more
googling around and got led to the same conclusion.  I started putting
together a Visual Studio project for it but then ran across an
interesting problem.


            The event log appender code is treating HANDLE as jint which
works okay on a 32 bit environment (aside from a sign issue) since the
jdk in includes\win32\jni_md.h defines jint as long.  The problem is
that the jni_md.h that comes with the windows 64-bit jvm *still* defines
jint as long, so HANDLE (a pointer) won't fit in a jint on the 64 bit


            Seems like the easiest way to make NtEventLogAppender 64-bit
compatible is to change the log4j jni code to use jlong to hold/deal
with HANDLEs.   It wastes a few bits on the 32-bit platform but lets you
move back and forth.




View raw message