KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q135389: FIX: What’s New: Bug Fixes Made in Visual C++ Version 2.2

Article: Q135389
Product(s): Microsoft C Compiler
Version(s): 2.2
Operating System(s): 
Keyword(s): kbGenInfo kbVC kbArtTypeINFkbbuglist kbfixlist
Last Modified: 18-FEB-2002

-------------------------------------------------------------------------------
The information in this article applies to:

- Microsoft Visual C++, version 2.2 
-------------------------------------------------------------------------------

SUMMARY
=======

This article lists fixes made in version 2.2 to bugs that appeared in Microsoft
Visual C++, 32-bit Edition, versions 2.0 and 2.1. This information can also be
found in the What's New help file available from Books Online or from the
initial Setup dialog box.


MORE INFORMATION
================

All of the following bugs were fixed in Microsoft Visual C++, 32-bit Edition,
version 2.2.

Integrated Development Environment
----------------------------------

- Pressing the F9 key or clicking the Toolbar button to set a breakpoint would
  cause a beep, and breakpoint would not be set. This bug would manifest itself
  when you chose a Windows number format that uses a comma instead of a decimal
  in a floating point number.

  For more information, please see the following article in the Microsoft
  Knowledge Base:

  Q127779 FIX: Can't Set BreakPoint w/ Country Set to Non-English Locale


- Editing a menu resource that contains a menu separator in the top-level menu
  could cause a general protection (GP) fault. This problem would most likely
  occur if you had generated an AppWizard OLE application. The cause was a bug
  in the resource editor.

  For more information, please see the following article in the Microsoft
  Knowledge Base:

  Q129094 FIX: GP Fault in Visual C++ When Separators in Top-Level Menu


MFC 3.2
-------

- Calling CDatabase::Open in a USRDLL with the parameter list (NULL, FALSE,
  FALSE, "ODBC;") could generate a CDBException with its m_strError member set
  to the value "Dialog failed." This problem occurs because the SQL Data Source
  dialog is displayed with a NULL main window. The desktop window now is passed
  as the main window.

  For more information, please see the following article in the Microsoft
  Knowledge Base:

  Q125794 PRB: Calling CDatabase::Open in a USRDLL Causes CDBException


- ODBC32.DLL fails to load on Win32s. A new ODBC32.DLL, which will load on
  Win32s, has been integrated in the \WIN32S directory of the Visual C++
  version 2.2 CD.

  For more information, please see the following article in the Microsoft
  Knowledge Base:

  Q129772 FIX: "Attempt to load required component ODBC32.DLL failed"


- Pulling down the File menu using an MRU list that contains a file stored on a
  floppy disk drive resulted in an attempt to access the floppy.


- MFC Tooltips did not get their styles from the Windows 95 settings. MFC 3.0
  and 3.1 did not use the system implementation for Tooltips; Windows 95 uses
  it, and therefore follows the system settings.


- Centering was not turned off for some dialog boxes that had the DS_ABSALIGN
  style. Conditional logic was corrected to eliminate this problem.


- When an item chosen from the MRU list failed to open, MFC did not remove that
  item from the MRU list. If the document fails to open, the item is now
  removed from the MRU list.


- CDC::GetWindow was documented, but did not exist in the CDC class. The
  function was added to the CDC class.


- CString::TrimLeft did not trim properly in Unicode builds. The function did
  not correctly account for the trailing NULL character.

  For more information, please see the following article in the Microsoft
  Knowledge Base:

  Q129770 FIX: CString::TrimLeft Fails in a UNICODE Application

- Incorrect painting for a CEditView in a splitter window. The default window
  style was not being set correctly in a Windows 95 splitter window. This
  problem has been corrected.


- CPropertySheet::ProcessChars had an incorrect conditional in the case of the
  WM_SYSCHAR message. The conditional logic for checking whether any control
  had the focus was incorrectly checking for ::GetFocus==NULL instead of the
  return value of GetFocus. This has been corrected to ::GetFocus()==NULL.


- The frame window was not reactivated when EndModalState was called. OnModal
  called BeginModalState, setting the m_cModalStack to a value higher than it
  should have been. This has been corrected.


- CString::operator= did not correctly null-terminate a unicode string. This
  has been corrected.


- The wrong toolbar is sometimes displayed if multiple MFC OLE servers are
  activated in Microsoft Excel. This has been corrected.


- Opening a recordset to do a bulk add sometimes caused text fields to be
  truncated. This has been corrected.


- CEnumConnPoints::OnNext generated an Application Error when called.

  This line:

        ((LPCONNECTIONPOINT)pv)->AddRef();

  has been corrected to read:

       (*(LPCONNECTIONPOINT*)pv)->AddRef();

- Calling DdeClientTransaction in the debug version of Windows generated a
  debug warning. This has been corrected.

  For more information, please see the following article in the Microsoft
  Knowledge Base:

  Q111013 FIX: DDE Warning Message: Invalid Value: -32767


- COleDispatchDriver::InvokeHelperV sometimes faulted when passed E_FAIL. This
  has been corrected.


- A memory leak resulted if an automation method threw an exception and there
  were arguments of types BSTR, DISPATCH, or UNKNOWN that required coercion
  into a temporary. This has been corrected.


- A debug build of an application would assert, and a retail build would hang
  on a task switch while in SHIFT+F1 help mode. This has been corrected.


- Decoding a UNICODE CString in a non-UNICODE application corrupted data. When
  CString deserialized a UNICODE CString object in a non-UNICODE application,
  the number of bytes in the string was determined correctly, but only one byte
  was allocated for the terminating null ('\0') character. This has been
  corrected.


- In Windows 95, CScrollView miscalculates scroll position. When the
  proportional thumb is set it will be off slightly when you scroll by dragging
  the thumb. This has been corrected.


- CSplitterWnd sometimes displayed incorrect painting because when calculating
  the region to paint, it assumed that the splitter bar shared the border with
  the window. In Windows 95, this is not the case. This has been corrected.


- CRecordset::Open was not maintaining SQL parsing errors. The mechanism for
  throwing exceptions in the case of non-concurrency related errors was
  modified so that the ODBC error strings will be filled prior to throwing a
  CDBException.


- IsFieldNull sometimes returned FALSE for single-precision floating-point
  fields that are NULL. This has been corrected.


- Calling IsFieldDirty twice could cause a database exception. This has been
  corrected.

  For more information, please see the following article in the Microsoft
  Knowledge Base:

  Q128831 FIX: CFile Exception: badSeek, OS error information = -1


- CRecordSet::m_bUseUpdateSQL was used before being initialized. This has been
  corrected.


Setup
-----

- Running Setup.exe in the root directory of the CD that Visual C++ 2.0 or 2.1
  come on from a UNC path would result in a Setup failure. Setup.exe was not
  intended to handle UNC connections correctly. this problem has been
  corrected. (An example of a UNC path is: \\Server\Share\Setup.exe.)


- The MFC Windows Socket DLLs were not installed on Win32s. Setup now installs
  these DLLs.

  For more information, please see the following article in the Microsoft
  Knowledge Base:

  Q129782 FIX: MFCN30.DLL and MFCN30D.DLL Not Copied with Win32S Setup


Additional query words: 2.00 2.10 2.20

======================================================================
Keywords          : kbGenInfo kbVC kbArtTypeINF kbbuglist kbfixlist
Technology        : kbVCsearch kbAudDeveloper kbVC220
Version           : :2.2
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.

Copyright Microsoft Corporation 1986-2002.