A VXD that was built in Visual C++ version 5.0 or a later version may fail to load in Windows 95 or Windows 98 if the VXD contains constant data (199295)
The information in this article applies to:
- Microsoft Visual C++, 32-bit Enterprise Edition 4.2, when used with:
- the operating system: Microsoft Windows 95
- the operating system: Microsoft Windows 98
- Microsoft Visual C++, 32-bit Enterprise Edition 5.0, when used with:
- the operating system: Microsoft Windows 95
- the operating system: Microsoft Windows 98
- Microsoft Visual C++, 32-bit Enterprise Edition 6.0, when used with:
- the operating system: Microsoft Windows 95
- the operating system: Microsoft Windows 98
- Microsoft Visual C++, 32-bit Professional Edition 4.2, when used with:
- the operating system: Microsoft Windows 95
- the operating system: Microsoft Windows 98
- Microsoft Visual C++, 32-bit Professional Edition 5.0, when used with:
- the operating system: Microsoft Windows 95
- the operating system: Microsoft Windows 98
- Microsoft Visual C++, 32-bit Professional Edition 6.0, when used with:
- the operating system: Microsoft Windows 95
- the operating system: Microsoft Windows 98
- Microsoft Visual C++, 32-bit Learning Edition 6.0, when used with:
- the operating system: Microsoft Windows 95
- the operating system: Microsoft Windows 98
- Microsoft Visual C++ .NET (2002), when used with:
- the operating system: Microsoft Windows 98
- Microsoft Visual C++ 2005 Express Edition, when used with:
- the operating system: Microsoft Windows 95
- the operating system: Microsoft Windows 98
This article was previously published under Q199295 SYMPTOMS A VXD built in Visual C++ version 5.0 or later, may fail to
load in the Windows 95 or Windows 98 operating system if it contains constant
data.
The same VXD built with Visual C++ version 4.2 may not show
this behavior. CAUSE The problem stems from differences in the way the compiler
versions handle constant data. The 4.2 compiler erroneously grouped constant
data with all other data. Hence, all data appeared in the LDATA section in the
object.
Later compilers, starting with version 5.0, correctly treat
constant data as separate read only data and place it in the .rdata section.
Because of this, the VXD fails to load, unable to recognize the new section.
The Visual C++ .NET Linker issues an LNK4212 warning for this
condition. RESOLUTION Use any one of the following two workarounds: STATUS
This behavior is by design.
Modification Type: | Major | Last Reviewed: | 1/11/2006 |
---|
Keywords: | kbtshoot kbCompiler kbprb KB199295 kbAudDeveloper |
---|
|