Visual C++ 6.0의 CString::Replace()의 문제점?
Visual Studio 계열은 C++ 표준인 std::string 보다는 CString을 더 많이 사용한다. 그런데, VC6의 CString::Replace()는 뭔가 문제가 있었던 것 같다. VC6에서 Unicode 프로젝트를 돌리며 여러번 확인했었는데, Replace()는 문자열 치환을 한 번만 수행했다. 즉, CString cs = _T("Hello World !"); cs.Replace(_T(" "), _T(" dirty ")); MessageBox(cs); 를 실행하면 Hello dirty World ! 가 출력되었다. 도움말을 찾아보지도 않고 그러려니하고 써왔었는데, 우연한 기회에 VS2013에서 테스트해보니 정상적으로 동작했다. 속으로 '아… MS가 이런 변화를 별도로 공지하지 않았나…' ..