내장된 애플리케이션 모델 정보
Windows 운영 체제를 사용하는 사람들은 때때로 다음과 같은 오류 메시지를 접합니다:
""0X" 명령에서 참조하는 "0x00000000" 메모리는 "읽거나" 쓸 수 없습니다"" 그리고 신청이 종료됩니다.
어떤 '전문가'에게 조언을 구하면 "윈도우가 너무 불안정하다"는 등의 분노와 경멸이 돌아오는 경우가 많다. 실제로 이 오류는 반드시 Windows 불안정으로 인해 발생하는 것은 아닙니다. 이 기사에서는 이 오류의 일반적인 원인을 간략하게 분석합니다.
1. 애플리케이션이 메모리 할당 실패를 확인하지 않았습니다
프로그램이 데이터를 저장하기 위해 메모리 조각이 필요한 경우 운영 체제에서 제공하는 "함수 기능"을 사용해야 합니다. 메모리 할당이 성공하면 함수는 새로 열린 메모리 영역의 주소를 응용 프로그램에 반환하고 응용 프로그램은 이 주소를 통해 이 메모리를 사용할 수 있습니다. 이것이 "동적 메모리 할당"이며 프로그래밍에서 메모리 주소는 "커서"입니다. 메모리는 항상 사용 가능하고 고갈되지 않는 것이 아니며, 메모리 할당이 실패하는 경우도 있습니다. 할당이 실패하면 시스템 기능은 0 값을 반환합니다. 이때 반환 값 "0"은 더 이상 새로 활성화된 커서를 나타내는 것이 아니라 시스템에서 응용 프로그램에 오류가 있음을 알리기 위해 보낸 알림을 나타냅니다. 발생했습니다. 응용 프로그램으로서 메모리를 적용할 때마다 반환 값이 0인지 확인해야 합니다. 그렇다면 오류가 발생했음을 의미하며 이를 저장하기 위해 몇 가지 조치를 취해야 합니다. 이렇게 하면 프로그램의 "견고함"이 향상됩니다. 애플리케이션이 이 오류를 확인하지 않으면 이 값이 "사고 관성"에 따라 할당된 사용 가능한 커서라고 생각하고 후속 실행에서 이 메모리를 계속 사용합니다. 주소 0의 실제 메모리 영역은 컴퓨터 시스템에서 가장 중요한 "인터럽트 설명자 테이블"을 저장하며 응용프로그램에서는 이를 절대 사용할 수 없습니다. 보호 메커니즘이 없는 운영 체제(예: DOS)에서 이 주소에 데이터를 쓰면 즉시 충돌이 발생합니다. Windows와 같은 강력한 운영 체제에서는 이 작업이 시스템에 의해 즉시 차단됩니다. 오류가 발생하고 그 결과 운영 체제는 오류가 확대되는 것을 방지하기 위해 잘못된 응용 프로그램을 강제로 닫습니다. 이때, 위에서 언급한 "메모리 쓰기" 오류가 나타나며 참조된 메모리 주소가 "0x00000000"임을 지적합니다. 메모리 할당 실패에는 여러 가지 이유가 있습니다. 메모리 부족, 시스템 기능 버전 불일치 등이 영향을 미칠 수 있습니다. 따라서 이러한 종류의 할당 실패는 운영 체제를 오랫동안 사용하고, 다양한 응용 프로그램(실수로 "설치"된 바이러스 프로그램 포함)을 설치하고, 많은 수의 시스템 매개 변수 및 시스템 파일을 사용한 후에 더 흔하게 발생합니다. 변경되었습니다.
2. 애플리케이션 자체 버그로 인해 비정상적인 메모리 커서를 참조합니다.
동적 할당을 사용하는 애플리케이션에서는 때때로 다음과 같은 상황이 발생합니다. write 예기치 않게 "사용 가능해야 하는" 메모리 조각이지만 어떤 이유로 사용 가능하다고 예상했던 커서가 유효하지 않게 되었습니다. 운영 체제에 할당을 요청하는 것을 "잊었"거나 프로그램 자체가 "주의를 기울이지" 않은 채 어느 시점에서 이 메모리를 로그오프했을 수도 있습니다. 등록되지 않은 메모리는 시스템에 의해 회수되며 해당 액세스 권한은 더 이상 응용 프로그램에 속하지 않습니다. 따라서 읽기 및 쓰기 작업도 "불법"을 시도하는 프로그램의 유일한 운명은 종료됩니다. 작업에 의해 모든 리소스가 회수됩니다. 컴퓨터 세계의 법률은 여전히 인간의 법률보다 훨씬 더 효과적이고 엄격합니다! 이와 같은 상황은 모두 프로그램 자체의 버그이며 특정 작업 순서에서 오류를 재현할 수 있는 경우가 많습니다. 잘못된 커서는 항상 0이 아니므로 오류 메시지의 메모리 주소는 반드시 "0x00000000"이 아니라 다른 임의의 숫자입니다. 시스템에 오류 메시지가 자주 표시되는 경우 다음 제안 사항이 도움이 될 수 있습니다.
1. 시스템에 트로이 목마나 바이러스가 있는지 확인하세요. 이러한 프로그램은 시스템을 제어하기 위해 무책임하게 시스템을 수정하여
운영 체제에 이상을 일으키는 경우가 많습니다. 항상 정보 보안 인식을 강화해야 하며, 출처를 알 수 없는 실행 프로그램에 대해 절대 호기심을 가져서는 안 됩니다.
2. 운영 체제를 업데이트하고 운영 체제 설치 프로그램이 올바른 버전의 시스템 파일을 다시 복사하도록 하고 시스템 매개변수를 수정합니다.
때때로 운영체제 자체에 버그가 있을 수 있으니 반드시 정식 업그레이드 프로그램을 설치하시기 바랍니다.
3. 새로운 버전의 애플리케이션을 사용해 보세요.
모드:
가상 메모리 교체
답변:
지금까지는 그렇습니다. 즉, 다음 추운 날씨가 오면 다시는 발생하지 않는다는 뜻입니다.
추가:
Ghost를 사용하여 OS를 복원하는 경우 권장됩니다. WINDOWS\PREFETCH 디렉터리에서 모든 *를 삭제하려면 .PF 파일을 사용하려면 Windows에서 프로그램의 실제 주소를 기억해야 합니다.
일부 응용 프로그램 오류
"0x7cd64998" 명령은 "0x14c96730" 메모리. 이것이 메모리를 '읽을' 수 없는 이유인 것으로 추론됩니다.
출처:
Win
XP의 '사전 읽기' 기술
이 최적화 기술은 응용 프로그램 소프트웨어에도 사용됩니다. 시스템은 각 응용 프로그램 소프트웨어의 처음 몇 번의 시작을 분석한 다음 응용 프로그램 요구 사항을 설명하는 가상 "메모리 이미지"를 추가하고 이 정보를
<에 저장합니다. p>WINDOWSPREFETCH 데이터 폴더. 이미지가 생성되면 응용 프로그램 소프트웨어가 훨씬 빠르게 로드됩니다. XP의 프리페치 데이터는 최근 8번의 시스템 시작 또는 응용 프로그램 소프트웨어 시작 정보를 저장합니다.후기:
현재 이 방법은 인터넷에서도 고유하며(이 문제에 대한 코드는 오랫동안 확인되었습니다) 일반적인 문제이기도 합니다. 원래는 거의 매일 자기 전에 소프트웨어를 닫아두었는데 프로그램에서 그런 일이 일어나네요...읽어보세요...
지금은 그런 일이 일어나지 않습니다.
제2조
특정 프로그램 실행 시 가끔 메모리 오류 메시지가 나타난 후(0x 이후의 내용은 다를 수 있음) 프로그램이 종료되는 경우가 있습니다.
"0x" 명령어가 참조하는 "0x" 메모리입니다. 이 메모리는 "읽을" 수 없습니다.
"0x" 명령이 참조하는 "0x" 메모리는 "쓰기"할 수 없습니다.
비슷한 실패를 경험한 적이 있나요?
일반적으로 이러한 현상은 여러 가지 이유로 발생합니다. 하나는 하드웨어, 즉 메모리에 문제가 있는 것이고, 다른 하나는 소프트웨어에 문제가 많은 것입니다.
먼저 하드웨어에 대해 이야기해 보겠습니다.
일반적으로 메모리 문제의 가능성은 높지 않습니다. 주요 측면은 메모리 모듈이 손상되고 메모리 품질에 문제가 있습니다. 그리고 용량이 다른 두 브랜드의 메모리를 혼합하더라도 호환되지 않기 쉽습니다. 동시에, 특히 오버클럭 후에는 열 방출 문제에 주의해야 합니다. MemTest를 사용하면
이 소프트웨어를 사용하여 메모리를 테스트할 수 있으며 메모리의 안정성을 철저하게 감지할 수 있습니다.
듀얼 메모리와 다른 브랜드의 메모리 모듈이 혼합되어 있거나 메모리를 중고로 구입했는데 이런 문제가 발생하는 경우 메모리나 다른 하드웨어에 문제가 있는지 확인해야 합니다. .
그렇지 않다면 소프트웨어 문제를 해결하세요.
먼저 원리를 간단히 말씀드리자면, 메모리에는 데이터를 저장하는 버퍼라는 공간이 있는데, 프로그램이 그 위치 중 하나에 데이터를 넣으면 공간이 부족해 오버플로가 발생하게 됩니다. 예를 들어, 양동이에는 1kg의 물만 담을 수 있습니다. 2kg의 물을 넣으면 넘치게 됩니다. 시스템이 화면에 표시됩니다. 이 문제는 windows2000에서 자주 발생하며, 98에서는 불법적인 조작으로 인해 시스템의 안정성을 유지하기 위해 위와 같은 상황이 발생하게 됩니다. 또한 하드웨어 장치 간의 호환성이 좋지 않아 발생할 수도 있습니다.
아래의 여러 예를 통해 분석하겠습니다.
예 1: IE 브라우저를 열거나 몇 분 내에 "0x70dcf39f" 명령에서 참조하는 "0x00000000" 메모리가 나타납니다. . 이 메모리는 "읽을" 수 없습니다. 프로그램을 종료하려면 "확인" 메시지 상자를 클릭하세요. "확인"을 클릭하면 프롬프트 메시지를 닫은 후 "내부 오류가 발생하여 사용 중인 창 중 하나가 곧 닫히려고 합니다"라는 메시지 상자가 나타납니다. 브라우저 장치도 꺼져 있습니다. 해결책: IE 브라우저를 복구하거나 업그레이드하고 패치를 적용하십시오.
제가 본 복구 방법 중 하나는 Win2000 자체 업그레이드, 즉 Win2000에서 Win2000으로 업그레이드하는 것입니다. 실제로 이 방법은 시스템을 초기 상태로 복원하는 것입니다. 예를 들어 IE가 6.0으로 업그레이드되면 업그레이드 후 IE5.0으로 대체됩니다.
예 2: Windows XP에서 CD에 있는 "AutoRun.exe" 파일을 두 번 클릭하면 "0x77f745cc" 명령이 참조하는 "0x00000078" 메모리가 표시됩니다. 메모리는
"기록"할 수 없습니다. 프로그램을 종료하려면 "확인"을 클릭하십시오. 그러나 Windows
98에서는 정상적으로 실행됩니다. 해결책: 이는 시스템의 호환성 문제일 수 있습니다. winXP 시스템의 경우 "AutoRun.exe" 파일, 속성, 호환성을 마우스 오른쪽 버튼으로 클릭하고 "호환 모드에서 이 프로그램 실행" 항목을 선택한 다음 "Windows
98/나”. win2000이 SP로 패치된 경우 시작하고 실행하고 regsvr32
c:\winnt\apppatch\slayerui.dll을 입력하세요. 마우스 오른쪽 버튼을 클릭하면 속성 및 호환성 옵션도 나타납니다.
예시 3: RealOne
Gold를 닫을 때 오류가 발생했습니다. 이전에는 정상적으로 사용되었지만 최근에는 "0xffffffff" 명령에서 참조하는 "0xffffffff" 메모리가 나타납니다. 닫혀 있던 시간. 메모리를 "읽을" 수 없습니다.
프롬프트. 해결책: 이 문제는 사용된 입력 방식이 Microsoft Pinyin 입력 방식 2003이고 입력 도구 모음이 숨겨져 있으므로(숨겨지지 않으면 문제 없음) RealOne을 닫기 전에 언어가 표시될 때 RealOne을 닫을 때 발생합니다.
bar를 선택하거나 다른 입력 방법을 현재 입력 방법으로 설정하여 이 문제를 해결하세요.
예시 4: 인터넷 이후 더 이상 My Hero Super Jieba를 재생할 수 없으며 명령에서 참조하는 메모리가 매번 프롬프트됩니다
"0x060692f6"(각 변경) "0xff000011" 메모리 "읽을" 수 없습니다. 프로그램을 종료하려면 확인을 누르십시오. 해결 방법: Hero Super Jieba를 다시 설치해 보세요. 다시 설치한 후에도 문제가 지속되면 공식 웹사이트로 이동하여 해당 버전의 패치를 다운로드하고 시도해 보세요. 그래도 작동하지 않으면 다른 플레이어를 사용해 보아야 합니다.
예 5: 게임 바로가기를 두 번 클릭합니다. "0x77f5cd0" 명령은 "0xffffffff" 메모리를 참조합니다.
메모리는 "읽을" 수 없으며 Client.dat입니다. 프로그램 오류 메시지가 나타납니다.
해결 방법: 그래픽 카드용 최신 드라이버를 다시 설치한 다음 DirectX9.0을 다운로드하여 설치하세요.
예 6: 친구가 메시지를 보냈는데 내 컴퓨터에 오류 메시지가 나타났습니다. "0x772b548f" 명령에서 참조하는 "0x00303033" 메모리는 "쓰기"할 수 없습니다. 그러면 QQ는 자동으로 오프라인이 되고, QQ를 다시 열어보니 그 사람이 보낸 메시지가 십여 개가 넘게 보였습니다. 해결책: 이것은 상대방이 QQ를 사용하여 특수 코드를 보내고 QQ 오류를 일으키는 BUG입니다. 패치를 적용하거나 최신 버전으로 업그레이드하면 문제가 없습니다.
원인
해결방법
1 메모리 모듈이 파손되었습니다. 메모리 모듈을 교체하세요.
2 듀얼 메모리가 호환되지 않습니다. 동일한 브랜드의 메모리 또는 메모리 한 개
3 메모리 품질에 문제가 있는 경우 메모리 스틱을 교체하세요.
4 열 방출 문제
열을 강화하세요 섀시 내부 손실
5 메모리 및 마더보드가 제대로 삽입되지 않았거나 다른 하드웨어가 호환되지 않습니다. 메모리를 다시 삽입하거나 슬롯을 변경하십시오.
6 하드웨어에 문제가 있는 경우 , 하드 디스크 교체
7. 드라이버 문제
드라이버를 다시 설치하세요. 새 시스템인 경우 마더보드 드라이버를 먼저 설치해야 합니다.
8 소프트웨어가 손상되었습니다. 소프트웨어를 다시 설치하세요.
9 소프트웨어에 버그가 있으면 패치하거나 최신 버전으로 업데이트하세요.
10 소프트웨어와 시스템이 호환되지 않습니다
소프트웨어를 패치하거나 시스템 호환 모드를 사용해 보세요.
11 소프트웨어 간에 충돌이 있습니다. 최근에 새 소프트웨어를 설치한 경우 제거해 보세요.
12 다른 관련 소프트웨어 사용 시 소프트웨어 문제
특정 형식의 파일을 재생할 때 오류가 발생하는 등 관련 소프트웨어를 재설치하는 경우 해당 파일의 디코더 문제일 수 있습니다.
13 바이러스 문제에 대한 바이러스 백신
14 바이러스 백신 소프트웨어가 시스템 또는 소프트웨어와 충돌합니다.
바이러스 백신 소프트웨어가 기본 모니터링 시스템에 들어가기 때문에 일부 소프트웨어와 충돌할 수 있습니다. .해보세요
15 시스템 자체에 문제가 있습니다
가끔 운영체제 자체에 버그가 있을 수 있으니 주의해서 SP 패치 등을 설치해 보세요. 적용하는 것이 가장 좋습니다. 그래도 아니요인 경우 시스템을 다시 설치하거나 다른 버전의 시스템으로 변경하십시오.
〔추가 코멘트〕
제어판의 프로그램 추가/제거에서 Microsoft NET.Framework가 이미 설치되어 있는지 확인하세요. 나중에 다른 프로그램에서 NET.Framework가 필요하면 다시 설치하면 됩니다.
또한 ATI 그래픽 카드를 사용하고 SP2 패치를 사용하는 경우(일부 ATI 그래픽 카드 드라이버는 NET.Framework가 제대로 작동할 수 있는 환경에 있어야 함) 이 경우 NET.Framework 지원이 필요하지 않은 ATI 그래픽 드라이버를 찾을 수 있습니다.
위의 두 가지 방법으로 문제를 완전히 해결할 수 없는 경우에는 "IE 복구" 소프트웨어를 사용하여 바이러스 등이 있는지 확인해볼 수 있습니다.
[Microsoft NET.Framework를 버전 1.1로 업그레이드해도 문제가 없습니다.]
[한 가지 더 말씀드릴 점]
방법 1:
Microsoft 뉴스 그룹 친구들의 팁: 시작--실행: regsvr32
jscript.dll
시작--실행: regsvr32
vbscript .dll
그러나 해결책은 없습니다---하지만 방법을 제공합니다------모든 dll을 한 번에 실행하고 등록합니다
발견된 검색 방법은 다음과 같습니다.
실행하고 cmd를 입력하세요.
Enter를 누르고 명령 프롬프트에 입력하세요
(%windir%\system32\*.dll)의 %1에 대해 regsvr32를 수행하세요. exe /s
%1
p>형님, 이 명령을 천천히 입력해주세요. 올바르게 입력하면 화면이 빠르게 스크롤됩니다... 그렇지 않으면. 실패하면 이 효과가 없습니다. Enter를 누르고 천천히 기다립니다(1~2분 정도 소요됩니다)
모든 작업이 완료된 후 엽니다.
방법 2:
일반적인 문제입니다~ ~~이 문제에는 여러 가지 이유가 있습니다. 일반적으로 문제를 해결하는 방법에는 시스템 패치, 메모리 교체, 메모리 슬롯 변경의 세 가지 방법이 있습니다. [시스템 패치는 Microsoft
업데이트 웹사이트에서 온라인으로 업데이트할 수 있습니다.]
(가끔)
이 문제에는 여러 가지 이유가 있으며 단순히 원인이 될 수는 없습니다. 결론을 내리려면 도움이 될 수 있는 다음 사항을 수행해 보십시오.
1.
수정되지 않은 소프트웨어(중국어가 아닌 크랙 버전)를 사용하고 있는지 확인하세요.
2. 수정된 소프트웨어를 사용할 때에는 다른 소프트웨어를 실행하지 마십시오. (임시 파일입니다. 일부 소프트웨어에서는 임시 폴더를 사용할 수도 있어 간섭이 발생할 수 있습니다.)
3. 데스크톱 도구와 메모리 구성 도구를 모두 끄세요(유사한 도구가 2개 이상 실행 중입니다)"
처리 방법:
regedit를 실행하여 레지스트리에 들어가세요.
p>
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks
아래에는 일반 키 값 "{AEB6717E-7E19-11d0-97EE-00C04FD91972}만 있어야 합니다.
p>나머지는 삭제하세요.
〔나의 개인적인 최종 해결방안 및 의견〕
오늘 다양한 방법을 시도해 보았는데, 마침내 문제가 Microsoft의 NET.Framework에 있다는 것을 발견했습니다. 소프트웨어를 업그레이드하고 패치를 모두 적용했더니 잠시 안심이 되었지만 '메모리를 읽을 수 없는' 상황이 발생했습니다. 나중에 위 기사에서 영감을 받아 Microsoft의 NET.Framework1.0과 1.1을 제거하자 세상은 평화로워졌습니다.
그 외: '내 컴퓨터', '내 문서' 등을 열 때 위와 같은 상황이 발생한다면, 이때 마우스 오른쪽 버튼 클릭 메뉴가 너무 부풀어 올랐을 가능성도 있습니다. 마우스 오른쪽 버튼 클릭 메뉴를 올리면 문제가 해결됩니다.
------------------------------- -- --------------------------
〔결과 of the test}
위의 방법 중 가장 효과적이고 철저한 방법은 다음과 같습니다.
실행
명령 프롬프트에서 cmd를 입력하고 Enter 키를 누르세요
(%windir%\system32\*.dll)의 %1에 대해 regsvr32.exe /s
%1
팁: 입력 오류가 발생하면 이 명령을 복사한 다음 명령 프롬프트 상자의 왼쪽 상단에 있는 c:\를 클릭하고 아래의 "편집-붙여넣기" 기능을 사용하면 실수를 더 쉽게 할 수 있습니다. 빠른 스크롤이 완전히 멈춘 후에도 다른 프로그램을 시작하려고 서두르지 말고 잠시 기다려 주십시오. DLL은 현재도 위치를 찾고 있기 때문입니다. 표시등이 깜박임을 멈출 때까지 다른 작업을 수행하지 마십시오.