PRB: Older MFC OCX Controls Incompatible with Visual Basic 4.0Last reviewed: July 2, 1997Article ID: Q168831 |
The information in this article applies to:
SYMPTOMSUpon placing an OCX control on a Visual Basic form, the control will ASSERT or cause a General Protection Fault. The most common asserts are as follows:
CAUSEOLE Custom Controls (OCX Controls) created using the Microsoft Foundation Classes (MFC) that ship with Microsoft Visual C++ version 2.0 or earlier for 32-bit development and Microsoft Visual C++ 1.51 or earlier for 16-bit development will not work properly in Visual Basic 4.0. The OCX standards and implementations have changed such that some minor incompatibilities have been created. The following MFC code raises the assertion when Visual Basic passes NULL as parameters:
STDMETHODIMPCOleControl::XPerPropertyBrowsing::GetPredefinedStrings( DISPID dispid, CALPOLESTR FAR* lpcaStringsOut, CADWORD FAR* lpcaCookiesOut) { ... METHOD_MANAGE_STATE(COleControl,PerPropertyBrowsing) ... ASSERT_POINTER(lpcaStringsOut,CALPOLESTR); ASSERT_POINTER(lpcaCookiesOut, CADWORD); ... } RESOLUTIONUpgrade to Visual C++ 2.1 or higher for 32-bit development and Visual C++ 1.52 or higher for 16-bit development.
STATUSMicrosoft has confirmed this to be a problem with Visual C++ version 2.0 and earlier for 32-bit development and Visual C++ 1.51 and earlier for 16-bit development. (c) Microsoft Corporation 1997, All Rights Reserved. Contributions by Troy Cambra, Microsoft Corporation |
Keywords : vb4all vb4win kbprb
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |