FIX: What's New: Bug Fixes Made in Visual C++ Version 1.52

Last reviewed: September 18, 1997
Article ID: Q125725
The information in this article applies to:
  • Microsoft Visual C++ for Windows, version 1.52

SUMMARY

This article lists fixes made to Microsoft Visual C++ for Windows in version 1.52. This information can also be found in the What's New help file that is available from Books Online or from the initial Setup dialog box.

MORE INFORMATION

Bugs Fixed in Visual C++ 1.52

Visual C++ version 1.52 fixes a number of bugs from Visual C++ version 1.5. These include bugs for hosting on Windows 95 and for double-byte character set (DBCS) code. In addition to such bugs, the following bug fixes are of particular interest to many developers:

Fixed Linker Bugs

CVPACK can cause L5000 problems in these three cases:

  • When linking a large number of object modules and libraries with the /CO option for CodeView information. For more information, please see the following article in the Microsoft Knowledge Base:

    ARTICLE-ID: Q102920

       TITLE     : FIX: Linker May Cause L5000 with CodeView Information
    
    
  • When a class has many data members, each with a long name. This could cause CVPACK to fault when trying to compact the type associated with the class.
  • When there are some faulty buffer limits. This could cause CVPACK to run out of types while emitting derived class type records after the pack. This could result in a general protection (GP) fault. For more information, please see the following article in the Microsoft Knowledge Base:

    ARTICLE-ID: Q102920

       TITLE     : FIX: Linker May Cause L5000 with CodeView Information
    
    

Fixed Debugger Bugs

In C++ source files, passing an array as an argument to a function and then trying to watch that array in the function caused the Visual Workbench debugger to expand the array incorrectly. For more information, please see the following article in the Microsoft Knowledge Base:

ARTICLE-ID: Q112984

TITLE     : FIX: Debugger Expands Arrays Passed to Functions Incorrectly

When you tried to expand a reference to an object in the watch or locals window of Visual Workbench, the Visual Workbench debugger did not correctly take the address of reference types when expanding this parameter type. For more information, please see the following article in the Microsoft Knowledge Base:

ARTICLE-ID: Q116463

TITLE     : FIX: Expansion of Object References Displays a Blank Line

Fixed Run-Time Library Bugs

Using the sin or cosl function in a DLL on a machine with no floating point unit (FPU) causes problems such as these:

  • Calling sin(PI/2) produced the wrong result.
  • Calling cosl(PI/2) caused a general protection (GP) fault.

Fixed MFC Bugs

When you used a CLongBinary field variable, only the data located in the first 64K was read from the binary field. A bug in the RFX_LongBinary function prevented the CLongBinary object from receiving all of the field's data when a field had more than 64K of information. For more information, please see the following article in the Microsoft Knowledge Base:

ARTICLE-ID: Q140535

TITLE     : FIX: Only the First 64K Is Read from Binary Field

Any call to COleServerDoc::XDataObject::SetData always returned the HRESULT corresponding to the error SCODE E_OUTOFMEMORY. These calls now return the code S_OK. For more information, please see the following article in the Microsoft Knowledge Base:

ARTICLE-ID: Q121522

TITLE     : FIX: SetData Always Returns E_OUTOFMEMORY

After opening a file from a floppy drive (or any removable medium) and removing the disk, Print Preview with Generic Text Only printer selected failed. The common dialog code in class CPrintDialog loaded the printer driver to get information. It looked for the printer driver in the current directory -- in this case on the removed disk. MFC failed to check the return value of a call to GetDefaults which returned an error in this case.

A default OLE container application with OLE Automation enabled initialized the m_pSelection data member in the wrong function. AppWizard initialized the member to NULL in the view's nInitialUpdate member function rather than in the view constructor. This led to an assertion failure in COleClientItem::OnDraw when you attempted to create a container document with another application. For example, this problem occurred when using the Visual Basic CreateObject function. The member is now correctly initialized in both places. This bug applies to both 16- and 32-bit versions.

COleDataSource::OnRenderData returned NOERROR instead of TRUE. Because the function return type was prototyped as BOOL, NOERROR was interpreted as FALSE. This bug applies to both 16- and 32-bit versions.

The EXCEPINFO structure was not correctly initialized for an OLE control. Information already available about an exception -- in particular, the control name and the name of the control's help file -- was overwritten. This has been corrected so that the EXCEPINFO structure is only filled if it is empty. This bug applies to both 16- and 32- bit versions.

The wrong window wss determined to be the active window when the HIERSVR sample application was embedded in Microsoft Excel. When you used Edit Insert in Excel to insert a HIERSVR object, select the object, then choose any command that opens a dialog box, the dialog box has the wrong parent. The parent is in Excel, not HIERSVR. The m_pActiveWnd data member needed to be set back to NULL once an object left the UI-active state. This was true for both 16- and 32-bit Excel. This bug applies to both 16- and 32-bit versions of Visual C++.

Class CSharedFile allocated global memory using an incorrect option. By default, CSharedFile allocated GMEM_FIXED memory instead of GMEM_MOVEABLE memory. This caused GlobalRealloc to fail and throw a memory exception even though there was still enough memory. The default has been changed to avoid this problem.

Keywords          : kblist kbbuglist kbfixlist kbref
Version           : 1.52
Platform          : WINDOWS
Issue type        : kbbug
Solution Type     : kbfix


================================================================================


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: September 18, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.