ID Number: Q80404
1.00
WINDOWS
Summary:
When a Visual Basic application shells to a Windows 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
This 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.
One solution is to use Visual Basic's 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.
This information applies to Microsoft Visual Basic programming system
version 1.0 for Windows.
More Information:
The 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 Sub
Note: 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