Microsoft KB Archive/80404

= PRB: VB Error Using Shell: Cannot Find DLL, Insert in Drive A =

Article ID: 80404

Article Last Modified on 12/12/2003

-

APPLIES TO


 * Microsoft Visual Basic 2.0 Standard Edition
 * Microsoft Visual Basic 3.0 Professional Edition
 * Microsoft Visual Basic 2.0 Professional Edition
 * Microsoft Visual Basic 3.0 Professional Edition
 * Microsoft Visual Basic 1.0 Standard Edition

-



This article was previously published under Q80404



SYMPTOMS
When 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 , Please Insert in Drive A



CAUSE
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.



RESOLUTION
One 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 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 &quot;c:\Apps&quot;    ' The name of the directory containing ' the needed DLL. x% = Shell(&quot;c:\Apps\MyApp.EXE&quot;, 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 query words: 2.00 3.00

Keywords: kbprb KB80404

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.