BUG: Referencing Different Type Libraries May Render an Executable Platform Dependent (281913)
The information in this article applies to:
- Microsoft Visual Basic Enterprise Edition for Windows 4.0
- Microsoft Visual Basic Enterprise Edition for Windows 5.0
- Microsoft Visual Basic Enterprise Edition for Windows 6.0
- Microsoft Visual Basic Professional Edition for Windows 4.0
- Microsoft Visual Basic Professional Edition for Windows 5.0
- Microsoft Visual Basic Professional Edition for Windows 6.0
- Microsoft Visual Basic Learning Edition for Windows 5.0
- Microsoft Visual Basic Learning Edition for Windows 6.0
This article was previously published under Q281913 SYMPTOMS
After compiling a Visual Basic project that references more than one type library on one platform (such as a Microsoft Windows 2000-based computer), the resulting binary fails to run on other platforms (such as Microsoft Windows NT 4-, Microsoft Windows 95-, Microsoft Windows 98-, and Microsoft Windows ME-based computers) and gets an Access Violation (AV).
CAUSE
The Visual Basic compiler is case sensitive when it is reading entries for dllname in type libraries. As a result, if a project references two or more type libraries and the dllname entry for the same DLL is spelled in different cases in different libraries, such as dllname("kernel32.dll") in library A, and dllname("KERNEL32.DLL") in library B, the compiler generates two import sections for the same DLL and renders the binary platform dependent.
STATUSMicrosoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.
Modification Type: | Major | Last Reviewed: | 6/29/2004 |
---|
Keywords: | kbBug kbCompiler kbnofix KB281913 |
---|
|