Microsoft KB Archive/125725

{|
 * width="100%"|

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

 * }

Q125725

-

The information in this article applies to:


 * Microsoft Visual C++, 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.

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: "Q102920 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: "Q102920 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:

"Q112984 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:

"Q116463 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:

"Q140535 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:

"Q121522 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.

Additional query words:

Keywords : kbList

Issue type : kbbug

Technology : kbVCsearch kbAudDeveloper kbVC152