PRB: MFC Debug DLLs Are Not Compatible Between Versions

ID: Q190487


The information in this article applies to:
  • The Microsoft Foundation Classes (MFC), included with:
    • Microsoft Visual C++, 32-bit Editions, versions 4.2, 5.0, 6.0


SYMPTOMS

Various errors or asserts can occur when you attempt to run a debug version of an MFC application with the MFC debug DLLs of another version. Possible errors include:

  • Ordinal could not be found.


  • Access violation.


This occurs if you attempt to debug an MFC application built with Visual C++ 5.0 in Visual C++ 6.0 and vice versa. This can also occur if you run your MFC debug application on a machine that does not have the corresponding debug DLLs installed.


CAUSE

Debug versions of MFC are not binary compatible with previous versions. However, this problem does not occur with release builds because they are binary compatible between versions.


RESOLUTION

To debug an MFC project built with Visual C++ 5.0 in Visual C++ 6.0, you must rebuild the project. To run a debug version of an MFC project on a machine that does not have Visual C++ installed, make sure the proper version of the MFC debug DLLs are installed. Note that redistribution of MFC debug DLLs is a violation of the Visual C++ license agreement.


STATUS

This behavior is by design.


MORE INFORMATION

Steps to Reproduce Behavior



  1. Build a DEBUG Build MFC application with Visual C++ 5.0.


  2. Copy the .exe file to a machine with Visual C++ 6.0 installed.


  3. Run the .exe file.

    RESULT: Runtime errors such as:
    The ordinal 3255 could not be located in the dynamic link library
    MFCO42D.DLL
    -or-
    Unhandled exception in thisisatest.exe: 0xC0000005: Access Violation.


(c) Microsoft Corporation 1998, All Rights Reserved. Contributions by Mike Francis, Microsoft Corporation.

Additional query words: 0xC0000005

Keywords : kbDebug kbMFC kbVC420 kbVC500 kbVC600
Version : WINNT:4.2,5.0,6.0
Platform : winnt
Issue type : kbprb


Last Reviewed: June 28, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.