VB "Cannot Find DLL, Insert in Drive A" Using Shell

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