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