::SetCurrentDirectory를 사용하면 다른 API 함수에 영향을 끼칠지도 모른다.
Programming/MFC 2012. 8. 7. 19:43 |난 계속 CFileDialog를 사용하면서 경로 설정때문에 ::SetCurrentDirectory도 같이 사용해줬는데
CFileDialog는 SetCurrentDirectory랑은 상관없는것같다. 경로 NULL로 했는데도 반응이 없음.
암튼
사용하는거 자체엔 문제가 없을 지 모르나 사용하고 난 후 나중에 ::WritePrivateProfileString을 사용해서 상당히 당황스러운 버그를 만났다.
요지는 이렇다. 난 #define INIFILE _T(".\\program.ini") 를 코딩해놓고 WritePrivateProfileString에 사용하는데
루트경로?를 SetCurrentDirectory에서 설정했던 경로대로 써버린다는 것이다.
결국 내가 마지막에 파일을 열었거나 저장한 곳에 program.ini 파일이 생성되게 된다.
다만 이걸 모를뿐...ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
함수는 FALSE가 아닌 TRUE를 리턴하질 않나, 프로그램 최초 시작 시 아무 동작도 안하면 정상적으로 inifile이 생성되질 않나
갑자기 삘이 확 와서 파일검색으로 찾아본 후에 해결함ㅡ.ㅡ
근데 이런 버그? 상황은 Windows 7에서는 볼 수 없고 Windows XP에서만 볼 수 있다.
Windows 7으로 개발하다가, XP 쓰시던 선임님께 프로그램 보내드리고 한두번 해보는데 안되서 개당황ㅋㅋㅋㅋㅋㅋ
덕분에 버그 하나를 해결할 수 있었지만.
그리고 모든 API 함수에 이런 버그가 적용되는 것인진 알 수 없고 이유도 잘 모르겠당...
아무튼, 주의해야겠다.
'Programming > MFC' 카테고리의 다른 글
windows user interface, MFC 총 정리 (0) | 2012.12.21 |
---|---|
UDN_DELTAPOS 메세지 보내기 (0) | 2012.09.03 |
[MFC 종료]OnCancel(), OnClose(), OnDestroy(), OnOK() 그리고 Dialog 소멸자 (0) | 2012.06.27 |
MFC 문자열 총정리 (0) | 2012.06.15 |
CString를 char*로 바꾸기 (0) | 2012.04.25 |