BUG: Binary Compatibility Leaves Source File in Open State

Last reviewed: June 2, 1997
Article ID: Q168414
The information in this article applies to:
  • Microsoft Visual Basic Control Creation, Learning, Professional, and Enterprise Editions for Windows, version 5.0

SYMPTOMS

When compiling an ActiveX Server (EXE or DLL), you may get the following error at the end of compiling:

   "An unexpected error occurred during compiling or linking"

If you choose to view the error details, the following message will be displayed:

   "LINK : fatal error LNK1104: cannot open file <filename>"

CAUSE

When the Binary Compatibility property is set for an ActiveX Server component (.EXE or .DLL), Microsoft Visual Basic 5.0 leaves the compatible source file in an open state until the Visual Basic 5.0 environment is closed.

NOTE: The behavior can also surface randomly with other types of Visual Basic projects when Binary Compatibility is used.

RESOLUTION

There are a few workarounds to this behavior:

  • When using the Binary Compatibility property, do not set the compatible source file to the same filename and location as the compiled component's destination file.

    -or-

  • Use the Project Compatibility option or the No Compatibility option whenever possible.

    -or-

  • Close and re-open the Microsoft Visual Basic environment when it is necessary to delete and/or overwrite the file which is locked in the open state.

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. We are researching this bug and will post new information here in the Microsoft Knowledge Base as it becomes available.

MORE INFORMATION

In Microsoft Visual Basic 5.0's development environment, the user has the option to select the following compatible component options:

  • No Compatibility
  • Project Compatibility
  • Binary Compatibility

This is done from the Component Tab of the Project Properties Dialog. The set of options on the dialog box determines how the project is to be compiled. (For more details on Compatibility, select the Component Tab and then press the Help button on the dialog.)

Selecting Project Compatibility or Binary Compatibility enables the file location textbox. The user can then select the source file for the compatibility during the compile process.

During compilation of the project, Visual Basic opens the compatible source file, reads specific information, and then writes the compiled compatible file to the destination specified on the Make Project dialog.

If the user selects Binary Compatibility, Visual Basic does not close the source file for an ActiveX EXE Server until Visual Basic itself is closed. This is not the case for the Project Compatibility option, nor is it the case for ActiveX Control projects.

The result of leaving the file open is not an issue for the user unless the user selects the same filename and location for the destination file. If they are the same, the user will encounter an error.

REFERENCES

For more information on this problem, please refer to the ReadMe.TXT file enclosed on the Microsoft Visual Basic 5.0 CD-ROM.


Keywords : kberrmsg vb5all
Technology : kbole
Version : 5.0
Platform : WINDOWS
Issue type : kbbug


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: June 2, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.