я написал что-то вроде этого некоторое время назад и может» t найти его, и он нужен снова. Поэтому я только что написал это еще раз, и я думаю, что я правильно понял:
Public Function IsRunningInIde() As Boolean
Static bFlag As Boolean
bFlag = Not bFlag
If bFlag Then Debug.Assert IsRunningInIde()
IsRunningInIde = Not bFlag
bFlag = False
End Function
Ошибка при поднятии.
Без сброса Err.
Только одна функция.
Строка 1: «Статическая» декларация «bFlag» заставляет значение bFlag придерживаться нескольких вызовов на «IsRunningInIde». Мы хотим этого, потому что я вызываю эту функцию внутри себя, и я не хочу замалчивать функцию входными параметрами, которые не нужны пользователю.
Строка 3: «Debug.Assert» не вызывается, когда не работает в среде IDE. Поэтому, только когда в среде IDE «IsrunningInIde» вызывается рекурсивно.
Строка 2: Если нет в рекурсивном вызове, bFlag начинается с false и получает значение true. Если в рекурсивном вызове (происходит только при запуске в среде IDE), он начинается с истины и возвращается к false.
Строка 3: Вызывается только «IsRunningInIde», если она не находится в этой функции рекурсивно, проверяя, является ли bFlag истинным.
Строка 4: Если в рекурсивном вызове всегда возвращается значение True, это не имеет особого значения, но не приводит к сбою Assert. Если нет в рекурсивном вызове, то возвращает «Not bFlag», который bFlag теперь «False», если IsRunningInIde был вызван рекурсивно, а bFlag «True», если он не рекурсивно называется. Так что в основном, Not bFlag возвращает «True», если он работает в среде IDE.
Строка 5: очищает bFlag так, что она всегда «False» в начале следующего вызова этой функции.
Трудно объяснить, что лучше пройти через это в своем уме в обоих сценариях.
Если вам нужен более простой способ понять код, не используйте его.
Если у вас возникли проблемы с этим кодом, прошу прощения и сообщите мне, чтобы я мог исправить это.
Смотрите также вопрос [отладочный режим в VB6] (http://stackoverflow.com/questions/ 9052024/debug-mode-in-vb-6) – MarkJ
Запуск в среде IDE не совпадает с подключением отладчика, что также можно сделать, конечно, но это совсем другое дело. – Bob77