logging-log4cxx-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Curt Arnold <carn...@apache.org>
Subject Re: Problems in msvc6
Date Thu, 04 Nov 2004 14:22:38 GMT

On Nov 4, 2004, at 7:46 AM, Kay Eckernkamp wrote:

> Hi,
>
> I am trying to include log4cxx 0.9.7 into my projects and I am
> running into several problems.
>
> --------
> 1st problem occurs if I try to compile the log4cxx.dll in msdev6.0.
>
> The following error occurs:
>   condition.cpp
>   C:\kay\log4cxx-0.9.7\src\condition.cpp(73) : error C2664:
> 'InterlockedCompareExchange' :
>   cannot convert parameter 1 from 'void ** ' to 'long *'
>         Types pointed to are unrelated; conversion requires
> reinterpret_cast,
>         C-style cast or function-style cast
>
> This is the line:
>   if ((long)InterlockedCompareExchange((void**) &waiters, 0, 0) != 0)
>
> I changed this line to
> 		if ((long)InterlockedCompareExchange(const_cast<long *>(&waiters), 
> 0, 0)
> != 0)
> 		
> This compiles, but I am not sure if I am breaking anything


This bug has been fixed in the CVS.  For more details, see 
http://nagoya.apache.org/jira/browse/LOGCXX-8.


>
> ---------
> 2nd problem occurs only with the release version of the log4cxx.dll,
> not with the debug version!
>
> If I get a logger like this:
>   LoggerPtr
> CAppBarAppDlg::logger(Logger::getLogger("ApplicationBar.BarDlg"));
>
> I get an Access violation during start.
> The guilty line is in hierarchy.cpp, line 293:
>   for(int i = name.find_last_of(_T('.'), length-1); i != String::npos;
> The value for length is 4291972 in my case.
>
> If I take the rootLogger I don't have this problem.
>
> ----------
> 3rd problem occurs if I take the rootLogger.
> If my program finishes I get again an Access Violation.
> This time in loggingevent.cpp, line 51
>
> That is the following code fragment:
>   LoggingEvent::LoggingEvent(const String& fqnOfCategoryClass,
>    	const LoggerPtr& logger, const LevelPtr& level,
> 	   const String& message, const char* file, int line)
>    : fqnOfCategoryClass(fqnOfCategoryClass), logger(logger), 
> level(level),
>   message(message), file((char*)file), line(line),
>   timeStamp(System::currentTimeMillis()), ndcLookupRequired(true),
>   mdcCopyLookupRequired(true), properties(0)
>   {
>    	threadId = Thread::getCurrentThreadId();
>   }
>
>   Guilty is the message parameter, having a length of 1631789170
>
>   ----------
>


Also fixed in the CVS, for more details see 
http://nagoya.apache.org/jira/browse/LOGCXX-4.

We are hoping for another release in the next few weeks.


Mime
View raw message