FIX: ClassWizard Quits If Class Twice Derived from CRecord (147735)



The information in this article applies to:

  • The Microsoft Foundation Classes (MFC), when used with:
    • Microsoft Visual C++, 32-bit Professional Edition 4.0
    • Microsoft Visual C++, 32-bit Professional Edition 4.1
    • Microsoft Visual C++, 32-bit Learning Edition 4.0

This article was previously published under Q147735

SYMPTOMS

Under circumstances similar to the following, ClassWizard may cause an access violation:
  • You derive a class, CMyRecordset1, from CRecordset using ClassWizard.
  • You derive another class, CMyRecordset2, from CRecordset using ClassWizard.
  • You replace all occurrences of CRecordset in the .cpp and .h files for CMyRecordset2 with CMyRecordset1
The result is that CRecordset2 will be derived from CRecordset1. When ClassWizard is invoked to view CMyRecordset2, an access violation may occur. This problem has been verified with both CRecordset and CDaoRecordset.

RESOLUTION

Leave occurrences of CRecordset in the ClassWizard comments. Particularly, don't change:
   //{{AFX_FIELD(CRecordset2, CRecordset)
				
to:
   //{{AFX_FIELD(CRecordset2, CRecordset1)
				

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This problem was corrected in Visual C++, 32-bit Edition, version 4.2.

Modification Type:MajorLast Reviewed:12/9/2003
Keywords:kbBug kbfix kbNoUpdate kbVC420fix kbwizard KB147735