2008-10-02 4 views
3

너무 작은 숫자를 너무 작은 형식으로 캐스팅했기 때문에 Visual C++ 2008에서 런타임 검사에 실패하면 문제가 발생합니다. 외부 dll에 오류가있어 문제를 해결할 수 없습니다. 그렇다면 외부 프로젝트에 대한이 런타임 검사를 어떻게 해제 할 수 있습니까?Visual Studio에서 런타임 검사 끄기

+0

어떤 런타임 검사가 필요합니까? – KTC

+0

디버거는 다음과 같이 썼습니다 : 런타임 검사 실패 # 1 - 더 작은 데이터 유형으로 변환하면 데이터가 손실됩니다. 이것이 의도적 인 것이라면 적절한 비트 마스크를 사용하여 캐스트 원본을 마스킹해야합니다. 예 : \t char c = (i & 0xFF); –

답변

-1

프로젝트 설정에서 항상 작은 유형 체크로 캐스트를 해제 할 수 있습니다.

수표가 dll로 컴파일 될 때 작동하지 않으면 디버그 "최적화 된"빌드에만 적용될 수 있으므로 디버그 버전이 아닌 dll로 연결을 시도 할 수 있습니다. 물론 디버깅에 영향을 미칠 수 있습니다.

3

이 DLL에서 다시 컴파일 할 수없는 캐스트 (및 확인)가 발생하면 쉽게 검사를 해제 할 수 없습니다.

유일한 문제는 DLL에 전달한 데이터를 변경하여 문제가 발생하지 않도록하는 것입니다. 또는 바이너리를 패치하여 체크를 해제하십시오. 아마도 그런 일은 거의 힘들지 않을 것입니다. 디스어셈블러에 능숙합니까?