본문 바로가기

All...

[MFC] CString 에 있는 파일경로 char 로 가져오기 wcstombs_s 함수 wcstombs_s () CFileDialog OpenDlg(TRUE, _T("XML"), NULL, OFN_ENABLESIZING, _T("XML File (*.xml)|*.xml|")); if (OpenDlg.DoModal() != IDOK) return; 이런 식으로 MFC에서 파일 Dialog를 띄운다.. 그리고 파일을 열텐데 그 파일경로를 가져오는 방법은... CString strPathName = OpenDlg.GetPathName(); 이런식으로 경로를 가져올수있음 그래서 특정함수로 아니면 다른 경우로 char 로 받아와서 넘겨줄때가 있다. 그래서 char * path = strPathName.GetBuffer(0) 요런 식으로 했다가 삽질점 했음.. 결국 찾아내서 wcstombs_s () .. 더보기
MultiByteToWideChar(), WideCharToMultiByte() 함수 1. MultiByteToWideChar() - 멀티바이트 형식을 유니코드 형식으로 바꿔주는 함수 (유니코드 환경에서 사용되겠음.) Ex) char* szText= "어쩌고저쩌고"; TCHAR newText[50]; MultiByteToWideChar(CP_ACP,0,(LPSTR)szText,-1,newText,50); 첫번째 매개 변수는 변환할 코드 페이지( 기본적으로 CP_ACP 사용) 세번째는 변활할 문자열 다섯번째는 변환값 저장 버퍼 끝에꺼는 SIZE 다른 자세한 매개변수는 MSDN을.....ㅡ,,ㅡ; 2. MultiByteToWideChar() - 유니코드 형식을 멀티바이트 형식으로 바꿔주는 함수 (반대로 멀티바이트 환경에서..당연한가 -,,-) Ex) char* szText = "저쩌고 어쩌고.. 더보기
Release Mode vs Debug Mode 출처 : http://blog.naver.com/PostView.nhn?blogId=nawoo&logNo=80135622658 Check List Pointer 초기화 되지 않은 포인터의 경우 디버그모드에서는 임의값 0xCD로 초기화를 수행하지만 릴리즈에서는 초기화를 수행하지 않는다. 디버그 모드에서 컴파일러 옵션을 조정하여 초기화 하지 않은 포인터 변수를 사용하는것을 예방 할 수 있다. /GZ 컴파일러 옵션은 기본적으로 VC++ 프로젝트 셋팅에서 기본값이 아니므로 필요하다면 추가해서 초기화 되지 않는 포인터의 값을 0xCC로 채우도록 해줘야 한다. /GZ 컴파일러 옵션의 가장 큰 목적은 초기화 하지 않은 메모리 변수의 값을 0xCCCCCCCC로 채워서 디버깅중에 개발자가 초기화 하지 않은 값임을 알 수.. 더보기