调试VB6应用程序时如何设置工作目录?

时间:2008-09-30 18:21:18

标签: vb6

我正在调试VB6可执行文件。可执行文件在运行时从其当前目录加载dll和文件。在调试器中运行时,当前目录似乎是VB6的目录。

如何为VB6设置工作目录?

5 个答案:

答案 0 :(得分:11)

对于这件事,它似乎不是一个“开箱即用”的解决方案。

取自The Old Joel On Software Forums

  

无论如何......让这个话题得以休息..   以下是我的VB6解决方案:我   在我的VB项目中定义2个符号   “MPDEBUG”和“MPRELEASE”并致电   以下功能为第一个   在我的应用程序入口点操作   功能

Public Sub ChangeDirToApp()
#If MPDEBUG = 0 And MPRELEASE = 1 Then
  ' assume that in final release builds the current dir will be the location
  ' of where the .exe was installed; paths are relative to the install dir
  ChDrive App.path
  ChDir App.path
#Else
  ' in all debug/IDE related builds, we need to switch to the "bin" dir
  ChDrive App.path
  ChDir App.path & BackSlash(App.path) & "..\bin"
#End If
End Sub

答案 1 :(得分:8)

“当使用File-Open打开项目时,”当前目录似乎是VB6的目录。“

在关闭IDE的同时双击.vbp文件打开它。

答案 2 :(得分:6)

我发现工作使用Sub Main的解决方案,并检查程序是否在IDE中运行。

Dim gISIDE as Boolean

Sub Main()
    If IsIDE Then
        ChDrive App.Path
        ChDir   App.Path
    End If

    ' The rest of the code goes here...

End Sub

Public Function IsIDE() As Boolean '
        IsIDE = False
        'This line is only executed if running in the IDE and then returns True
        Debug.Assert CheckIDE 
        If gISIDE Then 
            IsIDE = True
        End If
End Function

Private Function CheckIDE() As Boolean ' this is a helper function for Public Function IsIDE() 
        gISIDE = True 'set global flag 
        CheckIDE = True 
End Function

答案 3 :(得分:2)

Will this work?

'Declaration
Private Declare Function SetCurrentDirectory Lib "kernel32" _
Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long

'syntax to set current dir
SetCurrentDirectory App.Path

答案 4 :(得分:1)

任何程序的当前目录(包括vb6)都可以在快捷方式的属性中更改。我已将其更改为源树的根,它使文件打开更快。