본문 바로가기
programing/C++

Registry 자료형, 함수

by RedWiz 2015. 6. 9.

- Windows Registry

 

> Ini 파일 시스템

64K를 초과할 수 없음

win.ini와 system.ini에 엔트리 추가시 파일 크기가 빠르게 증가

윈도우가 아이템을 순차 검색과 같은 직선적 탐색 수행 => 크기가 큰 Ini 파일 엑세스시 느려질 수 있음

쉽게 보호할 수 없고 네트워크를 통해서 원격 관리도 불가능

데이터 형식이 없음 => 문자열로 저장해야하고 프로그래머는 형변환 시켜야 함

서버 개발에서는 관리하기 편하다는 이유로 사용하는 경우도 있음

 

> 설정 파일 시스템이 레지스트리로 변경

계층구조

키에 엑세스하고 값을 구함

키는 값뿐만 아니라 서브키를 가짐

파일 시스템과 매우 유사

 

 

- 레지스트리 자료형

 

 REG_BINARY

 바이너리 데이터

 REG_DWORD

 32비트 수

 REG_DWORD_LITTLE_ENDIAN

 리틀 엔디안 32비트 수

 REG_DWORD_BIG_ENDIAN

 빅 엔디안 32비트 수

 REG_EXPAND_SZ

 환경 변수에 대한 확장되지 않은 참조를 포함하고 있는

 NULL 종료 문자열

 REG_LINK

 Unicode 기호 링크

 REG_MULTI_SZ

 두 개의 NULL 문자로 끝나는, NULL 종료 문자열

 REG_NONE

 정의된 값이 없는 형식

 REG_RESOURCE_LIST

 디바이스 드라이버 리소스 리스트

 REG_SZ

 NULL 종료 문자열

 

 

- 레지스트리 함수 ( 성공 : ERROR_SUCCESS )

 

#include <windows.h>

 

LONG RegOpenKey(

HKEY hKey,    // 사용할 대표 KEY (HKEY_CLASSES_ROOT, HKEY_CURRENT_CONFIG

, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS)

LPCTSTR lpsubKey,    // hKey 이후 레지스트리 경로

PHKEY phkResult    //성공적으로 레지스트리 열었을 때 전체 경로

);

> 사용할 레지스트리 오픈

 

LONG RegCloseKey(HKEY hKey);

> 오픈 했던 레지스트리 키를 닫을 때 사용, RegOpenKey()의 phkResult를 hKey에 입력하면 됨

 

LONG RegCreateKey(HKEY hKey, LPCSTR lpSubKey, phkResult);

> 새로운 키 생성

 

LONG RegDeleteKey(HKEY hKey, LPCSTR lpSubKey);

> 키 삭제

 

LONG RegSetValueEx(

HKEY hKey,

LPCTSTR lpvalueName,    // 사용할 값의 이름

DWORD Reserved,    // 예약된 값으로 0을 입력하면 됨

DWORD dwType,    // 레지스트리에 입력될 수 있는 타입

(REG_SZ, REG_MULTI_SZ, REG_DWORD)

const BYTE* lpData,    // 값에 입력될 데이터

DWORD cbData    // 값에 입력될 데이터의 길이

);

> 해당키에 값 지정

 

LONG RegQueryvalueEx(

HKEY hKey,

LPCTSTR lpvalueName,    // 사용할 값의 이름

LPWORD lpreserved,    // 예약된 값으로 0을 입력하면 됨

LPWORD lpType,    // 가져온 값의 자료형

LPBYTE lpData,    // 가져온 데이터

LPDWORD lpcbData    // 가져온 데이터의 길이

);

> 해당키에 지정된 값을 가져올 때 사용

 

LONG RegDeleteValue(

HKEY hKey,

LPCTSTR lpValueName    // 삭제할 값의 이름

);

> 키에 속해있는 값을 삭제할 때 사용

 

'programing > C++' 카테고리의 다른 글

임시객체  (0) 2016.08.02
INI 파일 함수  (0) 2015.06.09
형 변환 (type cast)  (0) 2015.06.09
함수 객체  (0) 2015.06.08
함수 포인터  (0) 2015.06.08