2008-09-30 6 views
13

Я отлаживаю исполняемый файл VB6. Исполняемый файл загружает dll и файлы из текущего каталога при запуске. При запуске в отладчике текущий каталог, похоже, является реестром VB6.Как установить рабочий каталог при отладке приложения VB6?

Как установить рабочий каталог для VB6?

ответ

10

Это не кажется «из коробки» решение для этой вещи.

Взятые из The Old Joel On Software Forums

.. В любом случае, чтобы поставить эту тему на отдых .. следующий мой VB6 решение: я определить 2 символов в моем VB проекта «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 
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 
+1

Но проще использовать собственные команды VB6 'ChDrive App.Path: ChDir App.Path' – MarkJ

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 
6

«Текущий каталог, по-видимому, является реестром VB6», только когда вы открываете проект, используя File-Open.

Откройте его, дважды щелкнув файл .vbp, закрыв IDE.

1

Текущий каталог для любой программы, включая vb6, можно изменить в свойствах ярлыка. Я изменил его на корень моего исходного дерева, он быстрее использует File-Open.

 Смежные вопросы

  • Нет связанных вопросов^_^