반응형
만들어나가면서 시행착오를 기록하고 그것을 통해 좀더 발전된 형태로 업그레이드 하기 위한 기록이다.
1. 환경셋팅
ATL 에서 DB 연결을 위해 찾다가 ODBC 연결을 위한 클래스를 찾아 쓰게 되었는데 문제는 OLEDB 가 아니라서
내가 셋팅할 서버 window2000 에 DSN 설정을 하고 그 값을 넘겨야 한다. 하도 오래되나서 실수를 했는데
사용자 DSN 에다 만들어 놓은것이다. 시스템 DSN 에 만들어야 한다.
2. DLL 삭제
dll 을 만들어서 regsvr32 xxx.dll 등록하고 regsvr32 /u xxx.dll 로 해제 했는데도 공유 위반으로 삭제가
되지 않는것이다. 여러 프로그램찾아 써봤지만 안되길래 어디에 걸려있는지 궁금해서 분석툴을 찾았다.
dll 은 분명 실행 되어있는 어떤 프로세스에서 사용하고 있을것이다. 레퍼런스카운트가 0 이 되지 않으면
삭제되지 않는게 dll 이다.
그분석툴이 [ IceSword1.18en.rar-파일다운 ] 이다. 시스템 분석툴로도 많이 쓰고 네트웍감시로도 쓴다고
한다. 여하튼 이걸 통해서 프로세스에 연결된 내가 만든 dll 을 찾았다.
먼저실행후 왼쪽에 프로세스 아이콘을 클릭하면 오른쪽에 실행중인 프로세스 목록이 나온다.
각 프로세스에 오른쪽 마우스 클릭하고 Module Information 클릭한다.
위와 같이 클릭하면 연결된 dll 목록이 나온다. 일일이 클릭하느라 찾는데 시간이 걸렸다.
내가만든 Visit.dll 이 dllhost.exe 에 연결되어 있었다. 연결되는것이 당연하지만 unregister하면
풀에서 없어질줄 알았다. dllhost 는 응용프로그램에 쓰이는 서비스들을 핵심응용프로그램인
웹 서비스(Inetinfo.exe)등과 분리해서 관리한다. dllhost 가 관리한느 서비스가 다운되었을 경우에도
다른 핵심응용프로그램 웹 서비스(Inetinfo.exe)등에 영향을 주지 않기 위해서다.
핵심응용프로그램을 보호하도록 dllhost.exe 가 관리하는 것이다.
그림에서와 같이 Visit.dll 을 찾아서 오른쪽 unload(force) 강제해제 해주었다.
하지만 이렇게 해도 공유위반으로 삭제가 되지 않았다. 그래서 다른프로그램을 검색해서
찾아낸게 있는데 [ unlocker1.8.3-.zip - 파일다운 ] 이다. 프로그램을 설치하고 파일에
오른쪽 마우스클릭하면 다음과 같이 Unlocker 라는 메뉴가 생긴다.
이것을 클릭하면 다음과 같은 화면이 뜨는데 이것은 Visit.dll 이 연결된 프로세스를 보여주는것이다.
삭제는 왼쪽 콤보에서 삭제를 선택하고 제일 첫번째 버튼 , 프로세스 xxx 누르면 삭제된다. 단어가
개발새발인건 무엇때문인지 모르것다.
1. 환경셋팅
ATL 에서 DB 연결을 위해 찾다가 ODBC 연결을 위한 클래스를 찾아 쓰게 되었는데 문제는 OLEDB 가 아니라서
내가 셋팅할 서버 window2000 에 DSN 설정을 하고 그 값을 넘겨야 한다. 하도 오래되나서 실수를 했는데
사용자 DSN 에다 만들어 놓은것이다. 시스템 DSN 에 만들어야 한다.
2. DLL 삭제
dll 을 만들어서 regsvr32 xxx.dll 등록하고 regsvr32 /u xxx.dll 로 해제 했는데도 공유 위반으로 삭제가
되지 않는것이다. 여러 프로그램찾아 써봤지만 안되길래 어디에 걸려있는지 궁금해서 분석툴을 찾았다.
dll 은 분명 실행 되어있는 어떤 프로세스에서 사용하고 있을것이다. 레퍼런스카운트가 0 이 되지 않으면
삭제되지 않는게 dll 이다.
그분석툴이 [ IceSword1.18en.rar-파일다운 ] 이다. 시스템 분석툴로도 많이 쓰고 네트웍감시로도 쓴다고
한다. 여하튼 이걸 통해서 프로세스에 연결된 내가 만든 dll 을 찾았다.
먼저실행후 왼쪽에 프로세스 아이콘을 클릭하면 오른쪽에 실행중인 프로세스 목록이 나온다.
각 프로세스에 오른쪽 마우스 클릭하고 Module Information 클릭한다.
위와 같이 클릭하면 연결된 dll 목록이 나온다. 일일이 클릭하느라 찾는데 시간이 걸렸다.
내가만든 Visit.dll 이 dllhost.exe 에 연결되어 있었다. 연결되는것이 당연하지만 unregister하면
풀에서 없어질줄 알았다. dllhost 는 응용프로그램에 쓰이는 서비스들을 핵심응용프로그램인
웹 서비스(Inetinfo.exe)등과 분리해서 관리한다. dllhost 가 관리한느 서비스가 다운되었을 경우에도
다른 핵심응용프로그램 웹 서비스(Inetinfo.exe)등에 영향을 주지 않기 위해서다.
핵심응용프로그램을 보호하도록 dllhost.exe 가 관리하는 것이다.
그림에서와 같이 Visit.dll 을 찾아서 오른쪽 unload(force) 강제해제 해주었다.
하지만 이렇게 해도 공유위반으로 삭제가 되지 않았다. 그래서 다른프로그램을 검색해서
찾아낸게 있는데 [ unlocker1.8.3-.zip - 파일다운 ] 이다. 프로그램을 설치하고 파일에
오른쪽 마우스클릭하면 다음과 같이 Unlocker 라는 메뉴가 생긴다.
이것을 클릭하면 다음과 같은 화면이 뜨는데 이것은 Visit.dll 이 연결된 프로세스를 보여주는것이다.
삭제는 왼쪽 콤보에서 삭제를 선택하고 제일 첫번째 버튼 , 프로세스 xxx 누르면 삭제된다. 단어가
개발새발인건 무엇때문인지 모르것다.
반응형
'기타 언어 > C# & MFC' 카테고리의 다른 글
CodeProject The Ultimate TCP-IP Home Page_ Free source code and programming (2) | 2008.12.07 |
---|---|
이벤트를 html 에서 엑세스 하고 싶을때 javascript 와 vbscript 소스 (0) | 2008.09.04 |
ADO : AddNew Method Example (0) | 2007.09.15 |
ASP Component 작성 나만의 표준작성방법 (0) | 2007.09.14 |
ADO _Recordset 예제 (0) | 2007.09.14 |
printf와 scanf (0) | 2007.09.13 |
_bstr_t 클래스 사용법 (0) | 2007.09.04 |
ATL에서 문자열사용하기위한 방법들 (1) | 2007.08.31 |