본문 바로가기

C, C++, C#/Tip

GetPrivateProfileString, GetPrivateProfileInt 오류

반응형

목적

ini파일을 얻어오는 getprivateprofilestring 사용하면서 발생한 오류 해결 포스팅


개발을 하면서 C++언어와 C#언어를 이용해 개발을 하며 ini를 통해 설정 정보를 수정할 수 있도록 개발을 하는 도중 이유를 알수 없게 ini파일을 읽어오지 못하는 경우가 발생하였다.

 

 

 

 

 

 

반응형

 

위 그림은 ini파일의 저장 인코딩 때문에 발생한 문제점임을 알 수 있었고 간단히 정리하자면 다음과 같다.

 

1. 함수 사용 시 문자 집합에 따라 차이가 있다.

문자 집합에 따라 GetPrivateProfileㅁㅁㅁA, GetPrivateProfileㅁㅁㅁW로 사용된다. Winbase.h를 보면 아래 코드블럭과 같이 정의가 되어있다.

#ifdef UNICODE
#define GetPrivateProfileString  GetPrivateProfileStringW
#else
#define GetPrivateProfileString  GetPrivateProfileStringA
#endif // !UNICODE

 

2. 문자 집합에 맞춰서 ini파일의 인코딩 설정이 필요하다.

 GetPrivateProfileㅁㅁㅁA, GetPrivateProfileㅁㅁㅁW의 차이로 ini파일 인코딩 설정을 해야한다. ini파일 인코딩 저장 방법은 아래 그림과 같다.

 

반응형