2011. 5. 8. 21:07
UTF-8 경로를 넘기면 내부적으로 codecvt를 이용해 인코딩을 바꾸는듯하다.

그래서 boost::filesystem::basename 같은 것(내부적으로 b::f::path를 쓴다)을 쓰거나 path::filename, path::stem 같은 메소드를 썼을 때 반환하는 값이 UTF-8 문자열이 아니다. 조심하자. 자세한 내용은 좀 분석해서 쓰기로..
Posted by envi
2010. 3. 6. 23:45
사실 C/C++ 을 공부하면서 포인터의 개념이 어렵다고 느끼지 않고 쉽게 이해하고 넘어간편인데...
문득 다른 사람들이 포인터를 왜 어렵게 느끼는지 알고싶어서 다시 한번 짚고 넘어가고 있는데 미처 몰랐던 내용들이 보였다. 그중 하나가 다음과 같은 사용법인데...
char* pstr = "abcdef";
cout << 2[pstr] << endl;

result:
c
[] 연산자는 두개의 매개변수 (기준 위치, 기준에서의 offset) 받아 얼마나 떨어져 있는지를 나타내는 것이므로 순서는 상관이 없다.
Posted by envi
2009. 8. 31. 18:33
GetFolderPath() 시 에러나는 현상이 발생했습니다.

제 컴에(Vista)선 에러가 안나는데 다른 컴(XP)에선 에러가 나길래 당황했으나..

GetFolderPath() 소스를 보니 Vista 일 경우와 XP 일 경우 분기가 나뉘는걸 보고 MSDN을 뒤져봤습니다.
그리고 MSDN 은 이렇게 말합니다.
You can call this method only while the dialog box is being displayed. After the dialog box has been closed, this function will no longer work, and the method will fail with an assertion.

GetFolderPath() .DoModal() 로 Dialog 가 띄어져있는 상태에서만 쓰는거였습니다!!! 으알마랒ㅁ루짛@$%@#$%

GetPathName 으로 fullpath 를 얻어와서 적절하게 나눕시다. [...]

P.S: MSDN에도 저렇게 명시되어 있는데 왜 Vista 는 닫은 Dialog 정보를 갖고있다가 GetFolderPath를 에러없이 반환해준다. 왜일까?..
Posted by envi
2009. 7. 28. 11:20
뭐 대략 이런 식의 코드...
... 이거때문에 "뭐..뭐지.. strPath 에 왜 아무 것도 없는걸까.." 하고 있었습니다만..

범인은 임시객체의 소멸이었다는거.. 요즘 피곤한가봅니다 [...]


Posted by envi
2009. 6. 26. 21:57

MFC나 ATL에 있는 컨테이너들을 주로 쓰다가 STL로 넘어가려니 MFC의 편리한 함수들이 아쉽습니다.

특히나 CString 의 Format이나 Tokenizer, Replace 등의 함수가 std::string 에선 아예 없거나 동작 방식이 다르다보니..코딩하다가 버벅이는데..

틈틈히 CString의 함수들을 std::string에 이식한 유틸들을 만들던가 해야겠네요. :)


Posted by envi
2008. 1. 10. 15:55
There are really many ways to do it.

But, the simplest one is just this -


Note that as discussed in this post, CStringA is a template specialization of class CStringT for type char avaílable with Visual Studio 7.x and better.



CString 을 string 으로 변환할 일이 있었는데 VS 6.0 에서는 먹히던 방법이 VS 2005 에서 안먹히길래 다른 방법을 찾아봤습니다.

구글링을 해보니 금새 나오는군요 ;)
Posted by envi