2011-09-25 5 views
0

C++ Win32 응용 프로그램을 개발 중이며 영구 저장소를 구현하고 싶습니다. 나는 파일 시스템 또는 데이터베이스 또는 레지스트리를 사용할 수 있습니다 알고 있지만, 어떤이를 저장하기위한 가장 좋은 방법은 다음과 같습니다C++ win32 영구 데이터를 저장하는 방법

boolean 
unsigned int 
wchar_t [256] 
boolean [15] 

내가 응용 프로그램을 시작하고 종료하는 경우에만 저장 장치에서 읽기/쓰기를 할 필요가있다.

이것은 사용자 수준 응용 프로그램이며 사용자별로 데이터를 저장해야합니다. 나는 응용 프로그램 환경 설정 (트랙 바 위치, 일부 설정, 실행 횟수, ..)을 저장하므로 설정을 가져 오거나 내보낼 필요가 없습니다.

이 유형의 데이터에 가장 적합한 저장 방법은 무엇입니까?

+0

이 .. 더 많은 정보가 필요 응용 프로그램에 대한 일부 사용자 특정 경로에 쓰기 http://code.google.com/p/protobuf/ 이 사용자 수준 응용 프로그램입니다? 그렇다면 데이터가 모든 사용자에게 지속적으로 적용되어야합니까? 문제 해결/지원을 위해 텍스트 편집기로 저장된 데이터를 편집하거나 읽을 수 있어야합니까? 사용자가 새 컴퓨터로 데이터를 쉽게 옮길 수 있도록 하시겠습니까? 아니면 하나의 인스턴스에 묶여 있습니까? –

+0

updated updated 질문 : – blejzz

답변

4

Windows에서 설정을 작성하는 가장 쉬운 방법은 레지스트리에 저장하는 것입니다. 사용자 별 설정의 경우 HKEY_CURRENT_USER 섹션에 작성합니다. Here은 Win32 API의 레지스트리 액세스 함수의 전체 목록입니다.

응용 프로그램을 다른 플랫폼에 이식해야한다고 생각되면보다 다양한 플랫폼 간 친화적 인 솔루션을 살펴볼 수 있습니다. 내 애플 리케이션에서 내가 할 일은 사용자 홈 디렉토리에 설정 파일을 가지고 유닉스 방식으로 설정을 작성하는 것이다. 이렇게하면 WritePrivateProfileString 또는 유사한 API 호출을 사용하여 유익한 .ini 형식으로 작성할 수있는 것처럼 필요한 경우 사용자 (또는 사용자)가 편집 할 수있는 텍스트 기반 형식을 사용할 수있는 추가 이점이 있습니다. Windows에서 응용 프로그램은 설정 파일을 홈 디렉토리에 직접 쓰지 않습니다.이 파일이 일반적으로있는 "AppData"사용자 별 폴더가 있습니다. SHGetFolderPath 함수를 호출하여이 폴더의 경로를 가져올 수 있습니다.

+0

레지스트리 키를 사용하는 일반적인 규칙은'HKEY_CURRENT_USER \ Software \ CompanyName \ AppName'입니다. –

3

가장 간단한 해결책은 .ini file에 사용자의 APPDATA path으로 정보를 저장하는 것입니다.

0

는 직렬화/프로토 버퍼를 생각해 보면

관련 문제