2011-11-13 2 views
9

제 3 자 헤더 인 I #include ... 때문에 내 .cpp 파일 중 하나가 경고 C4275를 생성 중입니다. (경고는 비 -DVD에서 상속받은 DLL 내보내기 클래스로 인해 트리거됩니다. 내가 말할 수있는 한 DLL 내보내기 클래스). 처음 내 .cpp 파일의 라인과 아직 경고가 계속 생성되는 것처럼#pragma warning이 경고를 표시하지 않습니다.

#pragma warning(disable : 4275) 

:

나는 라인을 추가했다. 이것은 VC++ 2008에서 사용되며 PCH는 사용되지 않습니다.

#pragma이 작동하지 않는 이유는 무엇입니까? (제 3 자 코드를 변경하는 것 외에는) 어떻게 해결할 수 있습니까?

+0

openmp를 사용하고 계신가요? (필자가 본 곳/사용 된 #pragma) – pyCthon

답변

5

사전 처리 된 파일을 생성하면 다른 헤더 파일에서 경고를 다시 활성화 할 수 있습니다.

+1

불만을 덜어주기 : Visual Studio 2005 및 2012에서/P 플래그를 사용하면 경고 pragma가 무시됩니다. '/ P/D "NOMINMAX"'및 '#pragma warning (disable : 4005) #define NOMINMAX' 경고 C4005가 발생합니다. –

1

이 특별한 경고는 보지 못했지만 Visual Studio에서는 프로젝트 속성 (즉, pragma가 아닌)을 통해 특정 경고를 사용하지 않도록 설정할 수 있습니다. 그런 식으로 사용 중지하면 pragma를 통해 사용 중지하는 것보다 "강력한"것으로 보입니다. 당신은 당신이 사용하고있는 하나의 파일에 대해서 그렇게 할 수 있습니다.

물론 경고는 유용한 정보를 알려주므로 실제로는 최후의 수단이됩니다.

+1

그 중 하나가 작동하지 않습니다. 제 경우에는 경고를 사라지게하는'#include '의 저글링이 이번에는 발견되었지만 여전히'#pragma'가 어떤 상황에서 작동하지 않는지 궁금합니다. –

관련 문제