일단.. 크게 3가지 방법을 시도 할 수 있다…
방법 #1번부터 차례대로 따라해보고.. .해결이 안되면 최후의 수단으로 방법 #3으로… 기존의 Open과 Add Project를 대체하여 사용할 수 있다.
난 방법 #1과 방법 #2가 다 되지 않아 현재는 방법 #3으로 대체하여 사용중이다!
완전 불편함 없이 똑같다.
방법 #1
서비스팩 6.0을 설치한다
서비스팩 다운로드 : http://www.microsoft.com/Korea/MSDN/vstudio/downloads/updates/sp/vs6/sp6/
방법 #2
결국 devshl.dll 문제인듯 한데… 아래의 방법대로 차근차근 따라해보자! 그래도 안되면 방법#3으로 넘어간다.
[#M_펼쳐보기|접기|
If you experience a GPF in devshl.dll when starting VC++, try the following (especially if the last time VC++ ran, you installed an addin or customized toolbars or menus).
- Start regedit
- Open
HKCU\Software\Microsoft\DevStudio\6.0
(or 5.0)
- Select the Layout key
- Press F2 and rename it Layout.sav
- Try opening VC++ again
- If this doesn’t allow VC++ to startup, reverse the key name change. Consider swapping in the mfc*.dlls from your VC CDs.
- If this does allow VC++ to start, go to the next section (Fixing the Layout Key)
Fixing the Layout key
Warning: you will lose some of your IDE customizations (window placement, toolbars, etc)
- Close VC++
- In regedit, delete the new Layout key
- Rename Layout.sav to Layout
- Open the Layout key, find all the values whose names start with Layout (ie
HKCU\Software\Microsoft\DevStudio\6.0\Layout
: value Layout0) and delete them. If you can’t find any values named Layout? using regedit, then try using regedt32 – the UI isn’t as nice, but it’s not as buggy as regedit.
출처 : http://www.codeproject.com/KB/tips/devshl_fix.aspx_M#]
방법 #3
이래도 해결이 되지 않는다면 기존의 Open과 Add Project를 과감히 포기하고! 새로 추가해서 사용하자.
아래방법은 영어로 되어 있지만 하나하나 차근차근 따라하면 된다.
간추려 보면
아래 링크에 있는 filetool.exe를 다운받아서 압축풀고
거기있는 코드를 비주얼 스튜디오상에서 컴파일-빌드 하시면 새로운 툴바요소가 만들어 지는데,
1. 그걸 Tool메뉴에서 추가(단축키로 생성됩니다.) – 여기서 생성된 단축키로만 쓰셔도 되고
2. 기존의 open, add in project메뉴를 제거
3. 새로 만든 Open, Add in project를 실제 메뉴자리에 추가
하시면 끝
FileTool.exe
[#M_펼쳐보기|접기|
FileTool.exe Replaces the Open and Add-to-Project Features in Visual C++
SUMMARY
Launching the Open File dialog box in Visual C++ using the keyboard shortcut key or from the File menu results in the following error:
Access Violation (0xC0000005) in DEVSHL.DLL at 0x5003eaed.DevShl.Dll referenced memory at 0x0000000. The memory could not be read.
The same error occurs when you select Add to Project from the Project menu and click Files.
FileTool.exe is a sample that replaces the Open and Add to Project menu items in Visual C++ using the Developer Studio Object Model.
The Developer Studio Object Model contains methods that both open files and add files to a project. The BuildProject object contains an AddFile method that adds files to a project. The Documents object contains an Open method that can open files into Developer Studio. These can be used in either a macro or Add-In.
The following file is available for download from the Microsoft Download Center:
FileTool.exe (http://download.microsoft.com/download/vc60ent/s1/6.0/w9xnt4/en-us/filetool.exe)
The self-extracting FileTool.exe file contains the following files:
For additional information about how to download Microsoft Support files, click the following article number to view the article in the Microsoft Knowledge Base:
119591 (http://support.microsoft.com/kb/119591/EN-US/) How to Obtain Microsoft Support Files from Online Services Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help to prevent any unauthorized changes to the file.
Installing the Add-In
1. |
Run FileTool.Exe to extract the Visual C++ 6.0 project. |
2. |
Build the project in Visual C++ in Release or Debug configuration. |
3. |
In Visual C++, click Customize from the Tools menu. |
4. |
In the Customize dialog box, click the Add-Ins and Macro Files tab. |
5. |
Click the Browse button and locate the FileTool.dll file that was built in step 2. |
6. |
Click OK to save the settings. |
A toolbar for the two commands appears.
NOTE: Only the Open command works in Visual C++ 5.0. The AddFile method was added with the Visual Studio 6.0 release.
Removing Shortcut Keys
After you load the add-in, you can remove the shortcut keys for the menu items that stop Visual C++ and assign them to the two add-in commands by following the steps below:
1. |
From the Visual C++ Tools menu, click Customize. |
2. |
In the Customize dialog box, click the Keyboard tab. |
3. |
From the Category box select File. |
4. |
In the Commands window, select FileOpen. |
5. |
In the Current keys window, select the CTRL+O entry and then click Remove. |
6. |
From the Category box select Project. |
7. |
In the Commands window, select InsertFilesIntoProject. If there is a shortcut associated with it, follow step 5 to remove it. By default there is no shortcut key for this item. |
8. |
From the Category box select Add-Ins. |
9. |
The two add-in commands AddFileToProject and OpenFile appear in the Commands window. |
10. |
Select OpenFile then put the cursor in the Press New Shortcut Key box, press the shortcut key or key combination that you want, and click Assign. |
11. |
Repeat the above step for the other command. The assigned shortcut keys for the two commands appear in the Current Keys window. |
You may also wish to remove the menu commands and insert the AddIn commands in their place. To insert the new AddIn commands in the MenuBar, use the following steps:
1. |
From the Visual C++ Tools menu, click Customize. |
2. |
Click the File menu and then drag the Open command off of the File popup and release it. |
3. |
Click the Project menu, click Add To Project and then drag the Files command off of the popup and release it. |
4. |
In the Customize dialog box, select the Commands tab. |
5. |
Select Add-ins from the Category list box. |
6. |
Drag the OpenFile command to the File menu and drop it in the space vacated by the Open command. |
7. |
Drag the AddFileToProject command to the Add To Project item on the Project menu and drop it in the space vacated by the Files command. |
When the menus have been modified as above, it is not necessary to have the AddIn toolbar visible.
_M#]
아래의.. 댓글에 링크된 방법이 제일 좋을듯 합니다..^^
방법 4
[Bug Fix] VC++ 6.0 Devshl.dll (at 0x5003eaed) 0xC0000005: Access Denied 오류 해결법 (NULL pointer reference)
이 버그는 VC++ 6.0에서 File-Open을 클릭하거나, 프로젝트에서 Add File…을 클릭하면 발생하는 VC++ 6.0 Crash에 대한 부분입니다.
예전에 wz1054님이랑 넷미팅 중이였을 때, wz1054님도 같은 증상이 있던것으로 생각되는데, 저 역시 포맷 후에 XP SP3 무인설치로 깔아주니 같은 현상이 일어나네요. ( 게다가 커널 드라이버 역시 ntoskrnl.exe이 아닌 ntkrnlpa.exe로 wz1054님이랑 상황이 완전 비슷하다랄까… )
일단, MS 기술문서(KB)에도 해결책이 써져있습니다만, 미봉책적인 방법인데다가 해결이 안되는 경우도 있어서 글을 쓴겁니다. (MS 기술문서: http://support.microsoft.com/kb/231655)
MS 기술문서엔 아래 두가지 방법을 권고하네요.
1. 별도의 ToolBox Add-in 사용 ( 근데 이건 비추합니다.File-Open의 기능보다 너무 간소해서… 별로 쓰기가 싫은(?) )
2. SP4 이상(SP4~SP6)으로 Visual Studio 6.0을 패치한다. ( 제 컴퓨터에서는 SP6인데도 이런 증상이 일어나는군요. )
일단 이 문제는 컴퓨터에 너무 많은 Component Server(COM)들이 설치되어있어서 발생한다고 써져있었습니다. (근데 왜 과거에 쓰던 시스템에서는 많았는데도 잘됐을까… 쿨럭)
여튼, 직접 Debugger로 Reversing을 해보니까, 아래 코드가 문제였습니다.
0x5003eaed: repe cmps dword ptr [edi],dword ptr [esi]
edi가 0x00000000인 상태에서 Referencing을 하려니까 오류가 생긴것이였습니다.
이를 NOP으로 패치하고 그 밑에 여타 Jump Code를 crash가 발생 안하게끔 패치해주니,
정상 동작하였습니다. (단, File Format선택 콤보박스에 괴상한 문자 몇개 뜨는것쯤은 감수하셔야할듯)
패치 성공한 DLL파일은 아래에 있습니다.
위에 제시한 방법들로 성공하지 못하신 분들은, 아래 DLL 파일을 다운받으셔서
이를 C:\Program Files\Microsoft Visual Studio\COMMON\MSDev98\Bin에 덮어씌우시면 됩니다.
1094319508.dll