Отладка приложений



Вызов LIMODS из кода - часть 2


 END

Attribute VB_Name = "clsLIMODS" 

Attribute VB_GlobalNameSpace = False 

Attribute VB_Creatable = True 

Attribute VB_PredeclaredId = False

 Attribute VB_Exposed = False

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Copyright (c) 1997-2000 John Robbins — All rights reserved. 

' "Debugging Applications" (Microsoft Press)

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

' Вспомогательный класс LIMODS для разработки приложений Visual Basic

' 1. Включить этот файл класса в Visual Basic-проект и создать в нем

' глобальный экземпляр этого класса. ( Я назвал экземплярную

' переменную "cLIMODS".)

' 2. Чтобы отправлять отсюда предложения трассировки, нужно просто

' вызвать метод cLIMODS.Trace.

' 3. LIMODS активен только в компилированном Visual Basic-приложении.

' Если выполнять объект этого класса под отладчиком VB-IDE, то

' предложения трассировки будут посылаться с помощью регулярного

' оператора трассировки Debug.Print.

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Option Explicit

Private Declare Function LoadLibrary Lib "kerne!32" _

 Alias "LoadLibraryA" _

(ByVal IpLibFileName As String) As Long

 Private Declare Sub OutputDebugString Lib "kerne!32" _

 Alias "OutputDebugStringA" _ 

(ByVal IpOutputString As String)

Private Declare Function GetModuleFileName Lib "kerne!32" _ 

Alias "GetModuleFileNameA"

 _ (ByVal hModule As Long, _ 

ByVal IpFileName As String, _ 

ByVal nSize As Long) As Long

Private Declare Function GetModuleHandle Lib "kerne!32" _ 

Alias "GetModuleHandleA" _

(ByVal IpModuleName As String) As Long

Private m_Is!nIDE As Boolean

#If LIMODS Then 

Private Sub Class_Initialize()

 Dim blsInlDE As Boolean 

blsInlDE = InDesign()

' If blsInlDE is False, the main module isn't the Visual Basic IDE, 

' so I can load LIMODSDLL.DLL. 

If (False = blsInlDE) Then

LoadLibrary "LIMODSDLL.DLL" 

m_Is!nIDE = False Else

m_IsInIDE = True 

End If 

End Sub

#End If

#If LIMODS Then

Public Sub Trace(sOut As Variant) 

If (True = m_Is!nIDE) Then

Debug.Print sOut

 Else

Dim s As String 

s = sOut

OutputDebugString s 

End If 

End Sub

#Else ' LIMODS is *not* conditionally defined.

 Public Sub Trace(sOut As Variant)

 End Sub

#End If




Содержание  Назад  Вперед