none
특정 경고를 오류로 처리하도록 지정했는데 오히려 경고가 사라지는 문제 RRS feed

  • 질문

  • Visual Studio 2022 사용중입니다.

    MFC 프로그램 개발중에 CString으로 문자열 처리하는 과정에서 

    .Format(L"%s", "abcde"); 같은 코드를 컴파일하면 C6302 경고가 발생합니다.

    그래서 쉽게 코드를 수정하고자 6302 경고가 발생하면 에러로 인식하도록

    프로젝트 속성에서 '특정 경고를 오류로 처리'하도록 6302를 지정했습니다.

    그런데 에러는 커녕 아예 경고도 발생하지 않습니다.

    버그일까요? 아니면 제가 뭘 잘못한걸까요? 혹시 아시는분 계시면 답변 좀 부탁 드립니다.

    미리 감사드립니다.

    I am using Visual Studio 2022.
    C6302 warning occurs when compiling code like [.Format(L"%s", "abcde");] in the process of string processing as CString during MFC program development.
    So, in order to easily modify the code, I specified 6302 to 'treat certain warnings as errors' in the project properties so that when a 6302 warning occurs, it is recognized as an error.
    However, there is no warning, let alone an error.
    Is it a bug? Or did I do something wrong? If anyone knows, please reply.
    Thank you in advance.

    [translated by google]

    2022년 4월 28일 목요일 오후 12:51

답변

  • 안녕하십니까, Makeit 님
    피드백 주셔서 감사합니다.
    VS 관련 질문의 경우 아래의 포럼에 질문하시는 것을 추천드립니다.
    (https://developercommunity.visualstudio.com/report?space=62&entry=problem)
    말씀 주신 경고와 관련하여 C6302에 프롬프트가 표시되지 않고 MFC 환경에서 오류나 경고가 발생하지 않는 샘플을 작성하였으니, 님께서 참고하시어 코드를 수정하실 수 있습니다.

    #include <atlstr.h>
    
    int main() {
    CString str = CString(_T("A string"));
    str.Format(_T("%hs"), str);
    _tprintf(_T("%s"), (LPCTSTR)str);
    return 0;
    }

    답변이 도움이 되였으면 합니다, 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해 주시기 바랍니다.
    감사합니다.

    MSDN Community Support Elin

     다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.


    • 답변으로 표시됨 Makeit 2022년 5월 14일 토요일 오후 1:54
    2022년 5월 11일 수요일 오전 9:27
    중재자

모든 응답

  • 안녕하십니까, Makeit 님
    포럼에 질문 주셔서 감사합니다.
    말씀 주신 내용으로 VS 2022에서 C6302 경고를 재현하고 경고를 오류로 설정했는데 언급한 결과를 얻지 못했습니다, Visual Studio를 복구하거나 재설치하시는 것이 좋을 것 같습니다.
    물론 C6302를 수정하는 것도 좋은 해결책이니 아래 문서(https://docs.microsoft.com/en-us/cpp/code-quality/c6302? view=msvc-170)를 읽어보시길 권장 드립니다.
    답변이 도움이 되였으면 합니다, 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해 주시기 바랍니다.
    감사합니다.

    MSDN Community Support Elin

     다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.

    2022년 4월 29일 금요일 오전 9:06
    중재자
  • 답변 감사합니다.

    제가 잘 이해를 못했었는데, 검색해보고 상황을 제대로 이해를 해서 다시 질문 드립니다.
    특정 IntelliSense 경고를 컴파일러에서 에러로 처리하는 방법을 알고 싶습니다.

    IntelliSense 경고가 상황에 따라 즉시 표시될 때가 있고 약간의 시차(몇초 정도?)를 두고 표시될때가 있더군요.
    그걸 이해를 못해서 경고가 사라지는 것으로 받아들였고, intelliSense 경고를 컴파일러 경고로 이해해서 질문을 이상하게 했었습니다.

    예전 코드와 외부 오픈소스를 일부 가져다가 사용하려니 코드를 검토하기 힘들고 귀찮아서 위와 같은 방법을 사용해보려고 시도했었던 것입니다. 혹시 방법이 있다면 답변 부탁 드려 봅니다.

    감사합니다.

    ps. 필요하다면 새로운 thread로 다시 글을 작성하겠습니다.

    2022년 5월 9일 월요일 오후 2:14
  • 안녕하십니까, Makeit 님
    피드백 주셔서 감사합니다.
    VS 관련 질문의 경우 아래의 포럼에 질문하시는 것을 추천드립니다.
    (https://developercommunity.visualstudio.com/report?space=62&entry=problem)
    말씀 주신 경고와 관련하여 C6302에 프롬프트가 표시되지 않고 MFC 환경에서 오류나 경고가 발생하지 않는 샘플을 작성하였으니, 님께서 참고하시어 코드를 수정하실 수 있습니다.

    #include <atlstr.h>
    
    int main() {
    CString str = CString(_T("A string"));
    str.Format(_T("%hs"), str);
    _tprintf(_T("%s"), (LPCTSTR)str);
    return 0;
    }

    답변이 도움이 되였으면 합니다, 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해 주시기 바랍니다.
    감사합니다.

    MSDN Community Support Elin

     다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.


    • 답변으로 표시됨 Makeit 2022년 5월 14일 토요일 오후 1:54
    2022년 5월 11일 수요일 오전 9:27
    중재자