[ACE] 프로젝트에서 ACE Library를 사용하면서..


 이번 프로젝트를 하면서 ACE Library를 사용하였는데요.
 Reactor 등과 같은 멋진 기능을 사용하려고 했지만, 저희 과제가 기존에
 잡혀있는 틀이 있어서 그 틀을 수정하기가 너무나도 벅차서 Wrapper 기능을
 사용하면서 프로젝트를 진행하였습니다.

 그 중에 이번에 드릴 말씀은 ACE 에서 제공해주는 ini 파일 관리인데요.
 윈도우 API 중에 Get/Set 으로 INI 파일에 쓰고 읽고 기능을 수행하는 API가 있습니다.
 ACE 같은 경우엔 INI 파일을 관리하기 위해선 ACE_Configuration_Heap,
 ACE_Configuration_Section_Key, ACE_Ini_ImpExp 클리스가 필요하기 때문에
 단순히 어플리케이션에서 Get/Set 하기는 힘들구요. 자신이 Get/Set 의 함수를 만들어서
 사용하면 INI 관리하는 곳곳에 해당 클래스를 선언하기 보단 윈도우 API 처럼 쉽게 접근
 가능한거 같습니다.
 
 ACE 라이브러리에서 INI 파일을 관리하기 위해선 아래와 같은 순서로 사용하시면 됩니다.
 예외처리는 하나도 없고, 단순히 순차적으로 사용해야 되는 API를 나타냈습니다.
 
 ACE_TString tstrValue; // Attribute 값을 저장할 Value
 ACE_TCHAR strIniFileName[MAX_PATH] = {0,}; // INI 파일 이름
 ACE_Configuration_Heap config; // Heap 에 설정 정보를 저장하려고 사용
 ACE_Configuration_Section_Key section; // Section 을 저장할 변수

config.open() // 필히 열어야 한다.

ACE_Ini_ImpExp config_importer( config ); // 설정파일을 로드하기 위해 Heap 과 연결 시킴
config_importer.import_config( strIniFileName ) // INI 파일을 읽음
config.open_section( config.root_section(), strSection, 1, section ) // Section 을 설정함. 1은 없으면 생성한다는 의미
config.set_string_value( section, strAttribute, tstrValue ) // 해당 섹션에 해당 속성으로 값 저장
config_importer.export_config( strIniFileName ); // Heap 내용을 파일로 저장

이때 주의할 것은 ACE_Configuraion 은 Heap에서 설정 정보를 모두 편집 후에
파일에 한번에 저장하기 때문에 파일로 저장할 때, 잠시 파일 사이즈가 0이 되는 현상이
발생합니다. 이러한 상황에서 문제가 잦은 Get 으로 INI 파일에서 설정 정보를 읽어올때
해당 섹션 및 속성을 찾지 못하는 현상이 발생하게 됩니다. ;;;
 

by shad0w | 2008/08/17 05:12 | 네트워크 | 트랙백 | 덧글(0)
트랙백 주소 : http://shad0w.egloos.com/tb/714140
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글



< 이전페이지 다음페이지 >