Làm cách nào tôi có thể yêu cầu trình tiền xử lý không thay thế một macro cụ thể?Ngăn chặn tiền xử lý trước để thực hiện một khoản trợ cấp vĩ mô cụ thể
Sự cố cụ thể như sau: Tệp tiêu đề Windows xác định macro GetMessage.
Tệp tiêu đề C++ của tôi với API của tôi có phương thức GetMessage. Tôi không muốn đổi tên phương thức của mình. Nhưng khi sử dụng API trên Windows, bao gồm cả windows.h thay thế lời gọi phương thức GetMessage của tôi bằng GetMessageA.
Chỉ cần làm #undef GetMessage không tốt, vì mã sử dụng API cũng sử dụng Windows GetMessage. –
Ah, một ví dụ khác về việc sử dụng các macro không được phân biệt của Windows SDK là không gian tên bất kỳ và tất cả các không gian tên (và không chỉ trong tính năng không gian tên của C++). –
@vincent: xem don.Nhận xét của newfeld trong câu trả lời '#undef GetMessage' của ShoeLace là –