Khi bạn tạo một ứng dụng MFC mới, trình hướng dẫn tạo ra khối mã sau đây trong hầu hết các tập tin CPP:Có phải "#define mới DEBUG_NEW" và "#undef THIS_FILE" vv thực sự cần thiết không?
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
và đôi khi nó cũng cho biết thêm điều này:
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
Tôi muốn loại bỏ mã này từ các tệp CPP của tôi nếu nó là thừa. Tôi đang sử dụng một ứng dụng MFC với C + +/CLI trên VS2008.
Tôi đã thử chạy trong Debug sau khi xóa mã này khỏi CPP và có vẻ như hoạt động tốt. Các biến "mới" hoạt động tốt, không có rò rỉ và các hộp thoại ASSERT hiển thị tên tệp chính xác và chuyển đến dòng vi phạm.
Bất kỳ ai cũng có thể cho tôi biết nó có tác dụng gì không và có an toàn để xóa không?
Bạn có chắc chắn không? VS2008 vẫn hiển thị một đối tượng rò rỉ bộ nhớ bị rò rỉ sau khi tôi đã xóa khối mã. Có lẽ đây là trường hợp trong VC6 hay gì đó ...? – demoncodemonkey
Xin lỗi tôi vừa nhận ra có sự tinh tế với những gì bạn nói - khi mã ở đó cửa sổ đầu ra hiển thị tên tệp và dòng chứa rò rỉ bộ nhớ, trái ngược với việc chỉ ra rằng có rò rỉ bộ nhớ. – demoncodemonkey
Vì vậy, giải thích phần đầu tiên của mã được tạo. Còn phần 2 thì sao? #undef THIS_FILE static char THIS_FILE [] = __FILE__; – demoncodemonkey