FIX: "잘못 된 페이지 오류를 모듈 MSVCRT 나타납니다. "DLL Visual C++ 6.0에서 런타임 라이브러리를 설치한 후 오류 메시지가 나타난다


증상


컴퓨터에 Visual C++ 6.0에서 C 런타임 라이브러리 (Msvcrt.dll)를 설치 하면 이전에 실행 되는 응용 프로그램 제대로 실패 하 고 다음과 유사한 응용 프로그램 오류가 나타납니다.
< 응용 프로그램 이름 > MSVCRT 모듈에서 잘못 된 페이지 오류를 발생합니다. DLL에서 XXXX:XXXXXXXX입니다.

원인


이 오류의 가능한 원인 하나는 과거 특정 개체가 소유 하는 메모리 블록을 응용 프로그램을 작성 하는. 작은 블록 heapmemory 관리자 Visual C++ 6.0 런타임 라이브러리와 함께 제공 되는 작은 블록 힙 힙 제어 구조에 통합 되어 있습니다. 메모리 블록 덮어쓰지 포인터가 참조할 때 잘못 된 포인터 및 Msvcrt.dll에 영향 작은 블록을 힙 포인터 주소를 변경 합니다.

해결 방법


응용 프로그램 공급 업체 응용 프로그램 C 런타임 작은 블록 힙 올바르게 사용 하는 확인 해야 합니다.

타사 응용 프로그램에서이 문제가 발생 하는 고객을 위해 Microsoft는 새 C 런타임 동적 연결 라이브러리 (DLL) 두 힙 관리자를 구현 하는 Msvcrt.dll 출시 했습니다: Visual C++ 버전 5.0 호환 힙 관리자와 Visual C++ 버전 6.0 호환 힙 관리자입니다. Msvcrt.dll 어떤 버전의 응용 프로그램을 사용 하 여 빌드 및 적절 한 힙 관리자를 사용 하 여 해당 응용 프로그램에 대 한 Visual C++ 검색 합니다. 버전 6.0 이상이 Visual C++ 이면 Visual C++ 6.0 호환 힙 관리자가 사용 됩니다. 버전이 6.0 이전의 버전이 면 Visual C++ 5.0 호환 힙이 사용 됩니다.

Visual Studio 6.0 사용자는 최신 Microsoft Visual Studio 서비스 팩을 설치 하 여 새 Msvcrt.dll 파일을 얻을 수 있습니다. Visual Studio 사용 하지 않는 경우 설치 Microsoft 라이브러리 업데이트. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조 하십시오.
Microsoft 라이브러리 업데이트 197298 : 내용, 위치, 이유

상태


Microsoft는 "본 문서의 정보는 다음의 제품에 적용됩니다." 절에 나열한 제품에서 버그를 확인했습니다.

이 버그는 Visual Studio 6.0 서비스 팩 3에서 수정 되었습니다.
Visual Studio 서비스 팩에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조 하는 다음 문서 번호를 클릭 합니다.

194022 Visual Studio 6.0 서비스 팩 내용, 위치, 이유

194295 Visual Studio 서비스 팩이 설치 되었는지 확인 하는 방법

자세한 내용


작은 블록 힙 할당을 1k 크기에서를 구성 합니다. 이런이 종류의 버그 제어 구조는 메모리에 서로 위치에 위치 하기 때문에 이전 버전의 C 런타임 라이브러리 다르게 동작할 수 있습니다. 대개 이러한 종류의 코딩 오류 메모리 및 충돌이 다른 블록의 손상 될. Visual C++ 6.0 C 런타임 라이브러리를 사용 하면 액세스 위반이 발생 하는 이벤트의 순서는 다릅니다.

디버그 힙을 사용 하 여 이러한 유형의 문제 제어할 수 있습니다. "디버그 힙 사용" 이라는 제목의 온라인 설명서를 참조 하십시오. _CrtSetDbgFlag을 호출 하 여 디버그 힙 함수를 사용 하도록 설정 해야 (_CRTDBG_ALLOC_MEM_DF | _CRTDBG_CHECK _ALWAYS_DF)에서 응용 프로그램의 디버그 빌드에서 프로세스를 초기화 합니다.