C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[45990] Re:TRegistry 에서 GetValueNames 함수에 대한 질문
f [] 1192 읽음    2006-08-02 20:51
이재득 님이 쓰신 글 :
: 안녕하세요
:
: TStrings* strGetValue;
: TRegistry* Registry = new TRegistry();
:                                
: Registry->RootKey   = HKEY_LOCAL_MACHINE;
: Registry->OpenKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\ABC", false);
: Registry->GetValueNames(strGetValue);
:
: 이렇게 하면요.. ...ABC 안에 있는 여러 Key 들이 있는데 여기서 GetValueNames 하면 어떤 Key 의 Value 를 얻어오는 겁니까?
:
: 그리고 위에처럼 실행했을 때 오류가 나요.
: 오류 이미지 첨부파일에 넣었습니다.
:
: 제가 원하는 것은요.. ...ABC 안에 'TEST' 라는 키에 들어가있는 Value 를 얻어오고 싶습니다.
: 레지스트리 이미지 첨부파일에 넣었습니다.
:
: 중요해서요.. 꼭 답변해주세요. ㅠㅠ

ABC 키에 속한 Value들의 이름을 얻는 것입니다.
레지스트리는 외형상 디스크 드라이브의 디렉터리와 같은 형식입니다.
디렉터리에 대응하는 것이 키이고 파일에 대응하는 것이 Value라고 보시면 됩니다.
특정 디렉터리 안에 하위디렉터리도 있고 파일도 있을 수 있듯이 레지스트리의 특정 키 안에는 하위 키도 있고 Value도 있을 수 있습니다.
ABC 안의 TEST 키에 있는 Value 이름들을 가져오려면 OpenKey할 때 그 키를 지정해주셔야 합니다.
Registry->OpenKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\ABC\\TEST", false);

오류가 나는 것은 strGetValue가 할당된 메모리를 가리키고 있지 않기 때문입니다.
한편, TStrings는 추상클래스이므로 그 인스턴스를 생성할 수 없습니다.
TStrings를 상속받은 클래스 중에는 TStringList가 있는데 이를 사용하면 됩니다.
TStringList* strGetValue = new TStringList;

+ -

관련 글 리스트
45986 TRegistry 에서 GetValueNames 함수에 대한 질문 이재득 1525 2006/08/02
45991     Re:TRegistry 에서 GetValueNames 함수에 대한 질문 열씸! 1268 2006/08/02
46000         답변 감사합니다 이재득 930 2006/08/03
45990     Re:TRegistry 에서 GetValueNames 함수에 대한 질문 f 1192 2006/08/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.