Question and Answer Database FAQ1084C.txt Problems extracting floats from a stream Category :Install Issues Platform :Windows 95 Product : BC++4.5x BC++5.x TC++Win4.5 Question: Why do I get floating point stack overflow or zeros streamed in when I try to read floats? Answer: At about the same time that Windows 95 shipped, some BC++ applications that used the overloaded>> operator to read floats or doubles started to fail. At first, it was thought that it was System Agent and SAGE.DLL because removing this or applying the Windows 95 Service Packs usually made the problem go away. But really it wasn't SAGE.DLL but a DLL used by SAGE.DLL that was causing the problem. This DLL is called MSVCRT20.DLL ( MSVCRT.DLL on NT )and the problem is that initialization code in this DLL alters precision values in the Floating Point processor thus affecting the operator>> that reads in floats or doubles. To workaround 1)if on 95 apply all MS service packs 2)if that doesn't do it, consider other apps that load this DLL. OCX's might use it and actually Windows itself might use it for common dialog boxes. 3)try using the RTL function _fpreset() to reset the state of the FPU control word If you want to see the problem in the debugger add the RTL source code to these functions to your project so you can set breakpoints in the overloaded operator>> \bc5\source\rtl\iostream\isteflt.cpp \bc5\source\rtl\iostream\istedbl.cpp \bc5\source\rtl\iostream\isteldbl.cpp 7/2/98 10:32:32 AM
Last Modified: 01-SEP-99