On Nov 29, 2007, at 11:01 AM, Eborn, Eric D wrote:

Thanks Curt

Your advice has gotten me closer to a solution, I changed the projects
calling convention to __cdecl and it builds, which would seem to
indicate that you hunch was correct, I did build log4cxx with that same
convention (though I never specified such, is it a default with ant
perhaps? Or the compiler itself?)


__cdecl is the "C" calling convention and is the default for VC projects and for cl, __stdcall was formerly known as the "Pascal" calling convention but is the convention that is used to call any Win32 API methods which are explictly declared as __stdcall.


The std::vector<_ty> errors that I mentioned were showing up in my
project when I tried to link the shared libs when I didn't include the
STATIC directive.  This occurred for unknown reasons which I didn't
pursue because I didn't require shared libs.

Sounds like that was backwards, LOG4CXX_STATIC should not be used with shared libraries, it should be used with static libraries.



So my filter builds now but I get a strange error when I put any call in the code to log a string (i.e. LOG4CXX_DEBUG(logger, "Debug Test."); ).

The error is as follows:
The instruction at "0x010cecbc" reference memeory at "0x00000034". The
memory could not be "read".  [ok][cancel]

This error goes away and the filter functions as before when I include
the header and even create an instance of the logger variable with:
LoggerPtr logger(Logger::getLogger("MyApp"));



Sorry, I can't make any diagnosis off that description.



I think I would like to rebuilt log4cxx using the same calling
convention as my filter instead of rebuilding my filter with a differenc calling convention, even though I know not what consequences if any this
has.

Please advise.


Sorry, we haven't made any tests using the non-default calling conventions. Remember, you would need to build the whole stack (apr, apr-util and log4cxx consistently, any other third-party code base) with consistent conventions. Don't know any reason for log4cxx, apr or apr-util not to work with any consistent calling convention, just haven't tested it.

Reply via email to