Microsoft KB Archive/329066

= FIX: IsKindOf fails when you compare CDaoException classes =

Article ID: 329066

Article Last Modified on 8/24/2005

-

APPLIES TO


 * Microsoft Foundation Class Library 4.2
 * Microsoft Visual C++ .NET 2002 Standard Edition
 * Microsoft Visual Studio .NET 2002 Academic Edition
 * Microsoft Visual Studio .NET 2002 Enterprise Architect
 * Microsoft Visual Studio .NET 2002 Enterprise Developer
 * Microsoft Visual Studio .NET 2002 Professional Edition

-



This article was previously published under Q329066



SYMPTOMS
When you call CObject::IsKindOf on a CDaoException object, the result may return false, although it is a CDaoException object.



CAUSE
The DAO classes (CDaoDatabase, CDaoRecordset, CDaoException) are located in the static link library MFCS70[D].lib. Each of these classes has its own construct CRuntimeClass, so the data structures that GetRuntimeClass returns may be at different locations in the same process. This may occur where an application is made up of an EXE file and a DLL file, and both files use the CDaoException class. If you construct an object of class CDaoException in one binary and then use it and compare its type to RUNTIME_CLASS(CDaoException) in the other binary, the test IsKindOf returns false.

In previous versions, the DAO classes were located in MFC42[D].DLL, so this scenario would work because any instances of these classes came from the same binary.



Service pack information
To resolve this problem, obtain the latest service pack for Microsoft Visual Studio .NET. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

837234 List of bugs that are fixed in Visual Studio .NET 2002 Service Pack 1

Hotfix information
The English version of this fix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.

  Date         Time   Version        Size        File name --  27-Sep-2002  07:19                  2,011,136  Atl70.pdb 12-Sep-2002 22:50                     39,733  Afxdao.h   27-Sep-2002  07:19  7.0.9613.0         84,992  Atl70.dll 24-Jul-2002 02:08                      3,443  Atlbase.cpp 24-Jul-2002 02:08                    163,480  Atlbase.h   24-Jul-2002  02:08                     15,521  Atlcore.h   24-Jul-2002  02:08                     43,105  Atlimage.h   27-Sep-2002  07:19                     48,090  Atlmincrt.lib 27-Sep-2002 07:19                    659,456  Atlmincrt.pdb 27-Sep-2002 07:18                  1,003,690  Atlsd.lib 27-Sep-2002 07:18                  1,306,624  Atlsd.pdb 27-Sep-2002 07:19                    934,264  Atls.lib 27-Sep-2002 07:19                  1,306,624  Atls.pdb 27-Sep-2002 07:19                     14,546  Atl.lib 27-Sep-2002 08:49  7.0.9613.0         40,960  Mfc70chs.dll 27-Sep-2002 08:49  7.0.9613.0         45,056  Mfc70cht.dll 27-Sep-2002 08:49  7.0.9613.0         61,440  Mfc70deu.dll 27-Sep-2002 08:35                    527,756  Mfc70d.def 27-Sep-2002 08:36                  3,066,694  Mfc70d.lib 27-Sep-2002 08:49  7.0.9613.0         57,344  Mfc70enu.dll 27-Sep-2002 08:49  7.0.9613.0         61,440  Mfc70esp.dll 27-Sep-2002 08:49  7.0.9613.0         61,440  Mfc70fra.dll 27-Sep-2002 08:49  7.0.9613.0         61,440  Mfc70ita.dll 27-Sep-2002 08:49  7.0.9613.0         49,152  Mfc70jpn.dll 27-Sep-2002 08:49  7.0.9613.0         49,152  Mfc70kor.dll 27-Sep-2002 08:37                    528,736  Mfc70ud.def 27-Sep-2002 08:38  7.0.9613.0      2,064,896  Mfc70ud.dll 27-Sep-2002 08:40                  3,978,842  Mfc70ud.lib 27-Sep-2002 08:56                    393,034  Mfc70u.def 27-Sep-2002 09:11  7.0.9613.0      1,016,832  Mfc70u.dll 27-Sep-2002 08:42                  3,042,324  Mfc70u.lib 27-Sep-2002 08:55                    392,265  Mfc70.def 27-Sep-2002 09:21  7.0.9613.0      1,028,096  Mfc70.dll 27-Sep-2002 08:37                  2,287,020  Mfc70.lib 12-Sep-2002 22:50                      7,662  Mfcdll.mak 27-Sep-2002 08:36                    526,960  Mfcs70d.lib 27-Sep-2002 08:38                    468,956  Mfcs70ud.lib 27-Sep-2002 08:57                    452,554  Mfcs70u.lib 27-Sep-2002 08:56                    505,780  Mfcs70.lib 27-Sep-2002 08:32                 16,601,758  Mafxcwd.lib 27-Sep-2002 08:30                  2,093,056  Mafxcwd.pdb 27-Sep-2002 08:32                 16,466,616  Mafxcw.lib 27-Sep-2002 08:31                  2,068,480  Mafxcw.pdb 20-Sep-2002 06:18                     44,958  Oledisp1.cpp 27-Sep-2002 08:34                 17,035,162  Uafxcwd.lib 27-Sep-2002 08:33                  2,093,056  Uafxcwd.pdb 27-Sep-2002 08:35                 16,741,970  Uafxcw.lib 27-Sep-2002 08:34                  2,068,480  Uafxcw.pdb 27-Sep-2002 08:36  7.0.9613.0      2,068,480  Mfc70d.dll 27-Sep-2002 08:36                  7,826,432  Mfc70d.pdb 27-Sep-2002 08:38                  7,859,200  Mfc70ud.pdb 27-Sep-2002 09:11                  9,907,200  Mfc70u.pdb 27-Sep-2002 09:21                  9,915,392  Mfc70.pdb 27-Sep-2002 08:36                  1,880,064  Mfcs70d.pdb 27-Sep-2002 08:38                  1,888,256  Mfcs70ud.pdb 27-Sep-2002 08:57                  1,888,256  Mfcs70u.pdb 27-Sep-2002 08:56                  1,880,064  Mfcs70.pdb



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Visual Studio .NET 2002 Service Pack 1.

Keywords: kbbug kbfix kbqfe kbvs2002sp1sweep kbvs2002sp1fix KB329066

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.