2009-02-23 19 views
7

Tôi đang làm việc trên một chương trình MFC bắt đầu quay lại trong VC6 ngày. Lúc đó, có một trình hướng dẫn lớp đã sử dụng một loạt các trình trang trí và đánh dấu trong các chú thích để phân tích các tệp lớp.Những thứ như trang trí "afx_msg" vẫn được sử dụng bởi VS/MFC?

Ví dụ: nó sẽ chèn afx_msg trước bộ xử lý tin nhắn mà nó duy trì. Nó sẽ đánh dấu một khối mã với // {{AFX_MSG_MAP (TheApp)/}} AFX_MSG_MAP nhận xét để giúp tìm thấy các phần của bản đồ thư mà bạn muốn xử lý.

AFAIK, điều này không cần thiết nữa. Bên cạnh đó, có rất nhiều thiếu sót với trình hướng dẫn lớp mà chúng tôi phải thực hiện rất nhiều chỉnh sửa thủ công các khối được quản lý này và chúng tôi không bao giờ sử dụng nó thường xuyên.

Có bất kỳ lý do nào khác để tiếp tục sử dụng afx_msg và ilk của nó không?

Trả lời

10

afx_msg vẫn tồn tại nhưng luôn là thông tin hoàn toàn. Một trang trí như bạn đặt nó. Nó luôn luôn được định nghĩa là một chuỗi rỗng.

{{và}} điểm đánh dấu không còn cần thiết kể từ VS2003: VS hiện đủ thông minh để đặt mọi thứ vào đúng nơi mà không phải dựa vào các điểm đánh dấu này. Bạn sẽ nhận thấy rằng VS2003 + không còn bao gồm các dòng này trong các dự án mà nó tạo ra.

2

AFAIK, afx_msg không còn được sử dụng. Điểm đánh dấu khác được sử dụng để giúp CW tìm ra nơi để đặt mọi thứ, và một số trong số chúng vẫn có thể được sử dụng (ví dụ: vị trí bản đồ thư trong các tệp .cpp). Những người trong các tập tin tiêu đề có lẽ là an toàn hơn để loại bỏ, nhưng tôi sẽ không đưa chúng ra tùy ý.

Một điều bạn có thể làm: bắt đầu dự án MFC giả mới trong phiên bản VS hiện tại của bạn, thêm lớp cửa sổ và một vài trình xử lý và quan sát các ký hiệu hiện được tạo. Bất cứ điều gì không được đưa vào có lẽ không còn được sử dụng nữa, và bất cứ thứ gì vẫn được chèn vào vẫn có thể được sử dụng dưới dạng nào đó).

PS: MS hiểu rõ vấn đề với chỉnh sửa CW hiện tại và tôi được thông báo rằng chúng sẽ được giải quyết ở mức độ lớn trong VS2010 ... chúng ta sẽ thấy.

1

AFAIK không cần thiết nữa. Trình hướng dẫn lớp trong VS2008 sẽ không tạo ra các nhận xét nữa và sẽ không sử dụng các nhận xét hiện có được tạo bởi các phiên bản trước. Trình hướng dẫn lớp sẽ vẫn tạo ra các trang trí afx_msg nhưng chúng không được sử dụng.

Quy tắc chung của tôi khi xử lý mã từ VC6 ngày, là xóa tất cả các nhận xét, nhưng để rời khỏi trang trí afx_msg. Tôi tìm thấy các trang trí hữu ích khi đọc mã, để chỉ ra rằng một phương pháp là một trình xử lý tin nhắn.

0

Trong VS2008, afx_msg là một #define trống. Tôi đã loại bỏ tất cả các DrWizard chèn khác dreck từ ứng dụng của chúng tôi đã được nâng cấp từ VC6 đến 2005. Cấp, tôi cũng không sử dụng ClassWizard cả.

Các vấn đề liên quan