성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
[정성태] 저렇게 조각 코드 말고, 실제로 재현이 되는 예제 프로젝트를 압...
[정성태] Modules 창(Ctrl+Shift+U)을 띄워서, 해당 Op...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <br /> <div class='mainCenterTitle'>Windows Vista에서의 레지스트리 쓰기 오류</div><br /> <br /> VC++ COM 프로젝트에서, 빌드 후에 마지막 등록 과정에서 다음과 같은 오류 메시지가 발생하였습니다.<br /> <br /> <pre class='code'> 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 : <b>error PRJ0050: Failed to register output. Please try to register the component from a command prompt with elevated permissions.</b> 1>Build log was saved at "file://d:\...\debug\BuildLog.htm" 1>TestProject - 1 error(s), 2 warning(s) </pre> <br /> 수작업으로 regsvr32.exe를 통해서 등록을 시도하면 다음과 같은 오류 창이 나왔습니다.<br /> <br /> <img alt='cpp_activex_reg_problem_1.png' src='/SysWebRes/bbs/cpp_activex_reg_problem_1.png' /><br /> <br /> <pre class='code'> " 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. " </pre> <br /> 등록 과정의 오류를 피하기 위해 아예 Orcas를 "Run as administrator"로 실행시켰는데도 여전히 위와 같은 오류가 나와서 당혹스러웠습니다.<br /> <br /> 뭐... ^^; 별수 없지요.<br /> <br /> "Divide & Conquer"!<br /> <br /> 그렇게 하나씩 원인 추적을 하다 보니 결국 문제가 된 것이 RGS 파일에 있던 다음과 같은 내용이었습니다.<br /> <br /> <pre class='code'> <b>HKEY_CLASSES_ROOT\CLSID</b> NoRemove '{..........-.....-.....-.....-.............}' = s '' { ForceRemove 'MyData' = s '' { } } </pre> <br /> 위와 같이 기존 등록된 COM 개체에 제가 사용할 부가적인 데이터를 기록해 보려 했는데 이를 변경하는 권한이 부족했던 것입니다. <br /> <br /> 순간, 아차 싶더군요.<br /> <br /> "Program Files" 폴더에 있는 파일들을 변경하지 못하는 것에 대한 제약이, "레지스트리"의 일부 키에도 그대로 적용되는 것을 미처 고려하지 못했던 것이지요. 어쨌든, "TrustedInstaller"에게만 "Full Control"이 있었고, 그 외의 사용자(심지어 관리자까지도.)들은 읽기 권한만 있었습니다.<br /> <br /> ... 비스타 이전에는 오직 "관리자" 계정이기만 하면 무적이었는데. ^^<br /> <br /><br /><hr /><span style='color: Maroon'>[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
7282
(왼쪽의 숫자를 입력해야 합니다.)