코드/c/c++ INI 섹션 이름 열거 하기 by WeZZ 2014. 8. 21. GetPrivateProfileSectionNamesW의 return 값은 저장 버퍼의 공간이 부족 시의 부족한 사이즈만큼에 대한 정보를 저장해주지 않는다. 그래서 GetLastErorr를 통해 ERROR_MORE_DATA 에러시 사이즈를 증가시켜 저장 버퍼 공간을 더 많이 할당해주어야 한다. DWORD len = 1024; int cnt = 0; WCHAR *buffer = NULL; int i = 0; do { buffer = new WCHAR[len]; memset(buffer, 0, len); cnt = GetPrivateProfileSectionNamesW(buffer, len, L"E:\\test.ini"); DWORD e = GetLastError(); if(e == ERROR_SUCCESS) break; delete [] buffer; if(e == ERROR_MORE_DATA) { len += 1024; } else { printf("GetPrivateProfileSectionNamesW, ge = %d\n", e); return 0; } }while(1); while(i < (int)cnt) { WCHAR section[100] = {0,}; lstrcpyW(section , buffer + i); i += wcslen(section) + 1; printf("%ws\n", section); } if(buffer) delete [] buffer; 공유하기 게시글 관리 WeZz 저작자표시 비영리 관련글 OleRegGetUserType 사용 후 문자열 해제 CreateFile MSDN 번역 파일 핸들에 대한 접근 경로 얻기 윈도우 종료 이벤트 받기