PRB: VB Error Using Shell: Cannot Find DLL, Insert in Drive ALast reviewed: June 21, 1995Article ID: Q80404 |
The information in this article applies to:
- Standard and Professional Editions of Microsoft Visual Basic for Windows, versions 2.0 and 3.0- Microsoft Visual Basic programming system for Windows, version 1.0
SYMPTOMSWhen a Visual Basic application shells to a Microsoft Windows-based application that expects to find a dynamic link library (DLL) in its own directory, Visual Basic may generate the following error message and fail to start the application:
Cannot Find <DLL NAME>, Please Insert in Drive A CAUSEThis error occurs because the application being shelled to expects to find the DLL in the current directory, the MS-DOS path, or the Windows directory. Shelling to an application in code does not change the current directory, even if you specify the path to the application in the Shell statement.
RESOLUTIONOne solution is to use Visual Basic for Windows' ChDir statement to change the current directory to the directory containing the DLL before attempting to shell to the application. An alternative solution is to copy the DLL to the Windows directory, or include the path where the DLL is located in the MS-DOS path.
MORE INFORMATIONThe following is a pseudocode example that shows how to use the ChDir statement to make the application's directory the current directory. The C:\APPS directory and the .EXE name MYAPP.EXE are arbitrary names selected to represent the location of the application being shelled to and an .EXE name, respectively.
Sub Form_Click () ChDir "c:\Apps" ' The name of the directory containing ' the needed DLL. x% = Shell("c:\Apps\MyApp.EXE", 1) End SubNOTE: If the application is on a different drive, use the ChDrive statement first to change drives before using the ChDir statement.
|
Additional reference words: 1.00 2.00 3.00
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |