• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Kiểm tra chương trình đang chạy Debug hay không ?

Các mẹo vặt linh tinh khác, không thuộc nhóm nào
Hình đại diện của người dùng
tuyen_dt18
Guru
Guru
Bài viết: 256
Ngày tham gia: T.Bảy 19/04/2008 8:46 pm
Đến từ: Hưng Yên
Been thanked: 43 time
Liên hệ:

Kiểm tra chương trình đang chạy Debug hay không ?

Gửi bàigửi bởi tuyen_dt18 » T.Bảy 14/01/2012 3:49 pm

Thủ thuật: Kiểm tra chương trình đang chạy Debug hay không ?
Tác giả: Sưu tầm + tuyen_dt18
Mô tả: Dùng để xác định xem chương trình đang chạy chế độ Debug(trong IDE) hay không.


Trong khi lập trình, đôi khi ta rất cần xem chương trình đang chạy ở chế độ Debug hay đã Release rồi. Từ đó ta có thể có hướng giả quyết một số bài toán cần thiết. Thủ thuật sau sẽ giúp các bạn thực hiện điều đó.

Hướng dẫn : Trong khi chạy chế độ Debug, ta nhận thấy VB6 có một đối tượng là Debug với 2 hàm cung cấp là Print và Assert. Còn khi chạy ở chế độ Release(độc lập với IDE) thì tất cả các tham chiếu đến đối tượng này sẽ bị gỡ bỏ. Lợi dụng việc này ta sẽ gọi một một hàm trong số chúng để thực hiện công việc nào đó. Tuy nhiên trong 2 hàm này chỉ có 1 hàm có khả năng thực thi một hàm khác, đó là hàm Assert. Vậy ta sẽ sử dụng hàm này.
Ta sẽ dùng hàm này để gọi một hàm khác(giả sử tên hàm là SetDebugMode) và trong hàm được gọi (SetDebugMode) ta làm một việc gì đó để định nghĩa thứ gì đó như là : Gán 1 biến m_IsDebug=TRUE, gán 1 biến BienKiemTra="Đang chạy Debug", ... Rồi khi ta chạy Release(độc lập với IDE) thì hàm này sẽ không được gọi vì hàm Assert không bao giờ được gọi. Từ đó ta có thể kiểm tra giá trị của các biến cờ-Flag(m_IsDebug,BienKiemTra) để kết luận chế độ chương trình đang chạy.

Mã nguồn :
Các bạn đặt các hàm sau đây vào bất cứ nơi nào hợp lệ rồi sử dụng.
  1. public DEBUG__ As Boolean 'Có thể khởi gán=False
  2. Public Function IsDebugMode() As Boolean
  3.     Debug.Assert SetDebugMode
  4.     IsDebugMode= DEBUG__
  5. End Property
  6. Private Function SetDebugMode() As Boolean
  7.     DEBUG__ = True
  8.     SetDebugMode = DEBUG__
  9. End Function
  10. Private Sub Test()
  11.   If(IsDebugMode)Then
  12.       MsgBox "Chuong trinh dang chay trong che do debug ! ",vbInformation,"Test"
  13.   Else
  14.       MsgBox "Chuong trinh dang chay doc lap (Release) ! ",vbInformation,"Test"
  15.   End If
  16. End Sub
  17.  


Hỏi ý kiến tác giả trước khi sử dụng hoặc trích dẫn rõ nguồn bài viết khi sử dụng.

Quay về “[VB] Mẹo vặt khác”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.0 khách