MFC 에서 strcat 함수 말고 StringCchCopy 함수를 사용하자.
mfc & winAPI
2012. 12. 7. 11:17
기존 C 라이브러리의 strcat 나 lstrcat_s 함수들은 치명적인 오류를 가지고 있다. 이 함수들은 널(\0) 문자가 나올때 까지 스트링을 합쳐주거나 카피를 해주는 함수이다. 만일 어떠한 잘못된 루틴으로 인해 혹은 최종 사용자가 악용의 목적으로 널 문자를 없애 버리게 된다면 이는 버퍼 오버런을 유발 시키고, 프로그램의 치명적인 손상이나 보안의 위협에 노출 될 수 있게 될 수 있다. MS 에서는 아래의 함수를 사용하도록 권장하고 있다.
StringCchCopy나 StringCchCat 와 같은 StringCch~ 시리즈의 함수이다.
HRESULT StringCchCopy(
LPTSTR pszDest, size_t cchDest, LPCTSTR pszSrc );
이 함수를 자세히 살펴 보면 가운데에 사이즈를 넣을 수 있도록 했다. 대신 strsafe.h 파일과 strsafe.lib 라이브러리 파일을 추가 해주어야 한다. 자세한 설명은 아래의 웹사이트를 참고하자.
http://msdn.microsoft.com/en-us/library/ms647527(VS.85).aspx
'mfc & winAPI' 카테고리의 다른 글
LPSTR LPCTSTR 위험 CString -> char 으로 변환 (0) | 2013.02.13 |
---|---|
CString과 char*간의 변환 (0) | 2012.12.07 |
MFC HotKey 등록 (0) | 2012.11.05 |
중복실행 방지코드 (0) | 2012.03.07 |
정적, 동적 다이얼로그 객체의 생성과 해제[초간단] (0) | 2012.03.07 |