나는 여기에 절대적으로 열매 맺을거야. 내가 Windows에서 일부 C++ 개발을하고있어 나는 '인터페이스'라는 이름의 네임 스페이스가 있습니다 그러나win32 '인터페이스'매크로를 비활성화하는 방법은 무엇입니까?
namespace gd {
namespace interface {
}} // end namespace
을, 나는 "있는 Windows.h를 포함하는 경우에 상관없이 포함됩니다"OBJBASE.H "라는 이름의 파일이있다 "또는"Wtypes.h ", 이는 'interface'라는 매크로를 포함합니다. 이 매크로는 네임 스페이스 이름을 사용할 수 없습니다. Win32 API에 인터페이스 매크로의 정의를 비활성화하는 기능이 있습니까? 그렇지 않다면, 내 코드 기반에 너무 많은 대량 변경을 요구하지 않고, 누군가가 그것을 불가능하게하는 영리한 해결 방법을 생각할 수 있습니까?
'#undef interface'? – delnan
@delnan 필자는 저를 위해 포함하는 wrapper include를 생각해 냈습니다. 그러나 내 코드 (라이브러리) 외부의 누군가 windows.h를 직접 사용하면 같은 문제가 발생합니다. 일부 전처리 기 정의로 API 수준에서 사용 중지하는 것이 훨씬 쉬울 것입니다. –