RE: [ROOT] Different behaviour (i.e. Crash) of TString on Linux and Windows

From: Philippe Canal (pcanal@fnal.gov)
Date: Thu Mar 04 2004 - 23:24:55 MET


Hi Andreas,

I can not reproduce this problem.
However (due to your use of 'main'), I assume that you are linking
your own executable.  Windows is very sensitive (and not likely to
warn you) about library mis-match.

Retry you exaxmple using ACLiC.

Cheers,
Philippe.


-----Original Message-----
From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Andreas Zoglauer
Sent: Thursday, March 04, 2004 1:17 PM
To: roottalk@pcroot.cern.ch
Subject: [ROOT] Different behaviour (i.e. Crash) of TString on Linux and
Windows



Hello,

The following little program has different behaviour on windows and on
Linux:

#include <iostream>
using namespace std;
#include "TString.h"

int main()
{
   TString W = "Hello World";
   cout<<W<<endl;

   return 0;
}

On Linux, the output is of course: Hello, World!
But on Windows I get a Crash (access violation)!!

Wenn I replace <iostream> with <Riostream.h> I also crashes on Windows.
There is no crash when I replace cout<<W<<endl; with cout<<W.Data()<<endl;

Unfortunately I am no Windows expert, so I cannot debug ROOT on Windows,
but if I should guess, it might be a problem in ostream& <<operator of
TString??

I am using ROOT v4.00/02 win32gdk with Visual C++ 6.0 SP3

Ciao,
Andreas Zoglauer



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:06 MET