Microsoft MVP성태의 닷넷 이야기
오류 유형: 40. error PRJ0050: Failed to register output. [링크 복사], [링크+제목 복사],
조회: 23334
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 


Windows Vista에서의 레지스트리 쓰기 오류


VC++ COM 프로젝트에서, 빌드 후에 마지막 등록 과정에서 다음과 같은 오류 메시지가 발생하였습니다.

1>Finished generating code
1>comsuppwd.lib(comutil.obj) : warning LNK4049: locally defined symbol _free imported
1>comsuppwd.lib(comutil.obj) : warning LNK4049: locally defined symbol _malloc imported
1>Registering output...
1>Project : error PRJ0050: Failed to register output. 
      Please try to register the component from a command prompt with elevated permissions.
1>Build log was saved at "file://d:\...\debug\BuildLog.htm"
1>TestProject - 1 error(s), 2 warning(s)

수작업으로 regsvr32.exe를 통해서 등록을 시도하면 다음과 같은 오류 창이 나왔습니다.

cpp_activex_reg_problem_1.png

"
The module "......" was loaded but the
call to DllRegisterServer failed with error code 
0x80070005.

For more information about this problem, search
online using the error code as a search term.
"

등록 과정의 오류를 피하기 위해 아예 Orcas를 "Run as administrator"로 실행시켰는데도 여전히 위와 같은 오류가 나와서 당혹스러웠습니다.

뭐... ^^; 별수 없지요.

"Divide & Conquer"!

그렇게 하나씩 원인 추적을 하다 보니 결국 문제가 된 것이 RGS 파일에 있던 다음과 같은 내용이었습니다.

HKEY_CLASSES_ROOT\CLSID

NoRemove '{..........-.....-.....-.....-.............}' = s ''
{
  ForceRemove 'MyData' = s ''
  {
  }   
}

위와 같이 기존 등록된 COM 개체에 제가 사용할 부가적인 데이터를 기록해 보려 했는데 이를 변경하는 권한이 부족했던 것입니다.

순간, 아차 싶더군요.

"Program Files" 폴더에 있는 파일들을 변경하지 못하는 것에 대한 제약이, "레지스트리"의 일부 키에도 그대로 적용되는 것을 미처 고려하지 못했던 것이지요. 어쨌든, "TrustedInstaller"에게만 "Full Control"이 있었고, 그 외의 사용자(심지어 관리자까지도.)들은 읽기 권한만 있었습니다.

... 비스타 이전에는 오직 "관리자" 계정이기만 하면 무적이었는데. ^^



[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 4/10/2022]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 166  167  168  169  170  171  172  173  174  175  [176]  177  178  179  180  ...
NoWriterDateCnt.TitleFile(s)
643정성태1/10/200928243Windows: 33. Windows 7 베타와 VMA 충돌 [1]
642정성태1/8/200926955개발 환경 구성: 34. Sysinternals의 모든 툴을 한번에 업데이트 하는 방법 [1]
641정성태1/7/200924011기타: 27. D820 - A09 바이오스 업데이트 프로그램 패치 [2]
640정성태1/4/200925862Team Foundation Server: 29. ClickOnce 응용 프로그램 배포를 Team Build에 추가.
639정성태1/4/200923757Team Foundation Server: 28. PFX 코드 서명을 포함한 프로젝트의 팀 빌드 실패 - MSB4018
638정성태1/3/200926690.NET Framework: 119. WPF - 의존 속성 정의에서 XamlParseException 발생하는 예 [2]
637정성태1/1/200929036기타: 26. 2008년 인기 순위 정리
636정성태12/31/200824312.NET Framework: 118. 2진 검색을 이용한 리스트 정렬 삽입파일 다운로드1
635정성태12/29/200827092오류 유형: 66. 파일 암호화 오류 - Recovery policy configured for this system contains invalid recovery certificate
634정성태12/29/200841397기타: 25. 가상 키보드 관련 정리 [4]
633정성태12/20/200826675기타: 24. RMClock for x64 [2]
632정성태12/19/200835272기타: 23. D820 - 배터리 없이 바이오스 업데이트 방법 [2]파일 다운로드1
631정성태12/10/200844300VC++: 36. Detours 라이브러리를 이용한 Win32 API - Sleep 호출 가로채기 [3]
630정성태12/9/200824995.NET Framework: 117. WPF - TreeView에서 항목이 펼쳐질 때 Cursors.Wait 사용파일 다운로드1
629정성태12/7/200834500.NET Framework: 116. 소켓 연결 시간 제한
628정성태12/6/200822641.NET Framework: 115. Marshal 타입 관련 2가지 자원 해제 메서드파일 다운로드1
627정성태12/6/200825438VS.NET IDE: 58. VS.NET IDE 팁 - 커서 위치 이동 [1]
626정성태12/6/200825456오류 유형: 65. TF53018: The application tier XXXXXXX is attempting to connect to a data tier with an incompatible version
625정성태12/6/200825688오류 유형: 64. TFS 2008 SP1 설치 - MsiApplyMultiplePatches returned 0x643
624정성태12/5/200826664.NET Framework: 114. WPF 이벤트에 속한 핸들러 확인 [2]파일 다운로드1
623정성태12/4/200831165디버깅 기술: 22. VS.NET SP1 + .NET Framework 소스 코드 디버깅 [2]파일 다운로드1
622정성태12/1/200833422오류 유형: 63. WPF - XamlParseException 대응 방법 [2]
621정성태11/30/200825432Team Foundation Server: 27. TeamBuild + VDPROJ 셋업 프로젝트 [1]
620정성태11/30/200824248디버깅 기술: 21. 올바른 이벤트 예외 정보 출력
619정성태11/30/200824376디버깅 기술: 20. 예외 처리를 방해하는 WPF Modal 대화창파일 다운로드1
618정성태11/29/200824714.NET Framework: 113. 이벤트에 속한 이벤트 핸들러 확인파일 다운로드1
... 166  167  168  169  170  171  172  173  174  175  [176]  177  178  179  180  ...