logging-log4cxx-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kay Eckernkamp" <Kay.Eckernk...@gmx.de>
Subject Problems in msvc6
Date Thu, 04 Nov 2004 13:46:08 GMT
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

---------
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
  
  ----------
  
 Am I the first experiencing those problems?
  
 Environment Info:
 Windows 2000 Professional
 My Application is compiled using Visual Studio .NET 2002, which shouldn't
make a 
 difference since I am using the DLL version.
 
 All input is appreciated,
    Kay Eckernkamp

-- 
Geschenkt: 3 Monate GMX ProMail + 3 Top-Spielfilme auf DVD
++ Jetzt kostenlos testen http://www.gmx.net/de/go/mail ++


Mime
View raw message