2010-07-02 3 views
3

Visual Studio를 사용하여 네임 스페이스 확장을 디버깅하는 가장 좋은 방법은 무엇입니까? regsvr32를 사용하여 확장 프로그램을 등록 및 등록 취소하고 각 빌드마다 Explorer를 다시 시작하는 것은 편리하지 않습니다. 확장 프로그램에 디버거를 연결하면 좋은 이점이 있습니다.Visual Studio를 사용하여 네임 스페이스 확장 디버깅

Visual Studio를 사용하여 네임 스페이스 확장을 디버깅하는 간단한 방법이 있습니까?

+0

당신이하려는 일에 대해 좀 더 자세하게 설명하면 도움이 될 것입니다. 왜 dll을 등록해야하는지 등등. –

+0

탐색기에 새 가상 폴더를 추가하는 네임 스페이스 확장을 쓰고 있습니다. 이것은 COM 서버로 등록 된 dll을 사용하여 수행됩니다. 문제점 : Visual Studio를 사용하여이 확장을 디버그하는 방법을 찾지 못했습니다. 내 프로젝트를 재구 축할 때 dll이로드되어 탐색기를 종료해야합니다. 이 프로세스 중 하나에 디버거를 연결할 수 없습니다. 이러한 네임 스페이스 확장을 시작하고 디버그하는 간단한 방법이 있는지 알고 싶습니다. – Wienczny

+0

그 컨텍스트에서 시도하지는 않았지만 프로젝트 속성 explorer.exe를 "작업 시작 | 외부 프로그램 시작"으로 지정하지 않는 이유는 무엇입니까? 정확한 경로 (예 : "C : \ Winnt \ explorer.exe")를 지정해야하며 대부분이 트릭을 수행해야합니다. –

답변

2

explorer.exe /separate,::{desktopguid}\::{yourguid}과 같은 탐색기를 시작하면 해당 창에 대한 별도의 프로세스를 가져와야하며 새 레지스트리 항목 (또는 기존 항목을 선택해야합니다. 그 곳에 그대로두면 GetWindowThreadProcessId(GetShellWindow(),...)!=GetCurrentProcessId() 검사를 추가 할 수 있습니다) "메인"쉘 프로세스에서로드). 시작을 클릭, SeparateProcess 및 BrowseNewProcess

이 오래된 종료 트릭을 사용, taskmgr을에서 프로세스를 죽이지 않고 쉘을 닫으려면 DesktopProcess :

또한 탐색기의 비헤이비어를 변경하는 데 사용할 수있는 몇 가지 레지스트리 값이 있습니다 그런 다음 종료하십시오. Ctrl + Alt + Shift를 누른 상태에서 취소를 클릭하십시오.

관련 문제