728x90
CString 을 char*나
char*를 CString으로 변환시 W2A A2W 혹은
_T(" ") 매크로를 사용하여 변환하는경우 스택오버플로우가 발생하는 문제점을 직면했다.
반복문내에서 여러번 변환과정할때 내부 스택을 사용하기 때문에, 반복적으로 사용하면 스택오버플로우가 발생함.
ATL7.0부터 도입된 CW2A와 CA2W는 위의 문제를 피할 수 있다.
단, 내부 버퍼의 일정 크기를 넘어서면 힙에 메모리를 할당하게 된다. 따라서, 스택 오버플로우로 인한 프로그램이 죽는현상을 방지할 수 있다.
ex) char* -> CString 으로 변환
ex) CString -> char*로 변환
ex 0611_추가) UTF_8 문자열 집합 인코딩 변환 하는법
참조 : https://docs.microsoft.com/en-us/previous-versions/87zae4a3(v=vs.140)
300x250
'Programing_Language > C++' 카테고리의 다른 글
2차원 동적 배열 할당과 해제 (배열 vs 벡터) (0) | 2020.12.07 |
---|---|
enum과 enum class (열거 타입과 엄격한 열거 타입) (0) | 2020.12.06 |
VisualStudio 내부 스택 크기 조절방법 (0) | 2019.04.06 |
[MFC] CFileDialog 클래스 (0) | 2019.04.06 |
[MFC] csv파일 경로를 ListControl에 채우기 (0) | 2019.04.06 |
댓글