"Omid" <n_o_sp_a_m@hotmail.com> wrote in message
news:77537485.0407220025.295ab908@posting.google.c om...[color=blue]
> Hi.
>
> I have a piece of code that can be compiled and linked both with
> Cygwin g++ and with VC++. The code is:
>
> //WORKS WITH CYGWIN G++
> //BUT NOT WITH CL.EXE (VC++) (compiles, but error when executed)
> //################################
> #include <iostream>
> #include <sstream>
> using namespace std;
>
> int main ()
> {
>
> int val;
> string mystr;
> stringstream ss (stringstream::in | stringstream::out);
>
> cout.rdbuf(ss.rdbuf()); //Is this ok to do?
> cout << "120 42 377 6 5 2000";
>
> //If the two lines above are replaced with
> //this line it works fine with both
> //g++ and VC++:
> //ss << "120 42 377 6 5 2000";
>
> for (int n=0; n<6; n++)
> {
> ss >> val;
> cerr << val*2 << '\n';
> }
>
> cerr << "Hello World! " << endl;
> return 0;
> }
> //################################
>
>
>
> My problem is that during run time the exe-file that was created with
> Cygwin g++ (3.3.1) works fine, but the exe-file that was created with
> VC++ 6.0 crashes.
>
> Here is the error message:
> The instruction at "0x00402f7f" referenced memory at "0x0000000sd".
> The memory could not be "read".
>
>
> Is there any errors in my code, or do I do something I'm not allowed
> to?
> Since it works in Cygwin g++, but not in VC++ 6.0 I think this is
> really strange, since I believe that my code is 100% ANSI-C++ code. Or
> is it?
>
> I compile with:
> G++: g++ test.cpp
> VC++: cl /GX /TP test.cpp (also compiled with the entire VC++
> development GUI)
>
> I'm thankful for any information that might help me with this problem.
>
> /Omid[/color]
I just tried with VS.NET and it compiles and runs cleanly. You can download
the compiler for free
http://msdn.microsoft.com/visualc/vctoolkit2003/.