tôi đã viết một cái gì đó như thế này một thời gian trở lại và có thể' t tìm thấy nó, và cần nó một lần nữa. Vì vậy, tôi chỉ viết lại và tôi nghĩ rằng tôi đã làm đúng:
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
Không có lỗi nào được nêu ra.
Không đặt lại Err.
Chỉ một chức năng.
Dòng 1: Khai báo "tĩnh" của "bFlag" làm cho giá trị của bFlag dính vào nhiều cuộc gọi đến "IsRunningInIde". Chúng tôi muốn điều này bởi vì tôi gọi chức năng này trong chính nó, và tôi không muốn xả rác các chức năng với các thông số đầu vào mà không cần thiết bởi người sử dụng.
Dòng 3: "Debug.Assert" không được gọi khi không chạy trong IDE. Vì vậy, chỉ khi trong IDE không "IsrunningInIde" được gọi là đệ quy.
Dòng 2: Nếu không có trong cuộc gọi đệ quy, bFlag bắt đầu sai và được đặt thành true. Nếu trong cuộc gọi đệ quy (chỉ xảy ra khi chạy trong IDE), nó bắt đầu như là true, và được đặt trở lại false.
Dòng 3: Chỉ gọi "IsRunningInIde" nếu nó không có trong chức năng này đệ quy, bằng cách kiểm tra xem bFlag có đúng không.
Dòng 4: Nếu trong cuộc gọi đệ quy, luôn trả về True, không thực sự quan trọng, nhưng không khiến Assert thất bại. Nếu không có trong cuộc gọi đệ quy, sau đó trả về "Không bFlag", mà bFlag bây giờ là "Sai" nếu IsRunningInIde được gọi đệ quy, và bFlag là "Đúng" nếu không được gọi đệ quy. Về cơ bản, không bFlag trả về "True" nếu nó đang chạy trong IDE.
Dòng 5: Xóa bFlag sao cho luôn luôn "Sai" ở đầu cuộc gọi tiếp theo với hàm này.
Thật khó để giải thích, tốt hơn hết là bạn nên thực hiện nó trong đầu, trong cả hai trường hợp.
Nếu bạn muốn hiểu mã đơn giản hơn, đừng sử dụng nó.
Nếu có vấn đề với mã này, tôi xin lỗi và cho tôi biết để tôi có thể khắc phục.
Xem thêm các câu hỏi [chế độ gỡ lỗi trong vb6] (http://stackoverflow.com/questions/ 9052024/debug-mode-in-vb-6) – MarkJ
Chạy trong IDE không giống như có một trình gỡ rối được đính kèm, mà cũng có thể được thực hiện tất nhiên nhưng đó là một điều khác. – Bob77