Develop
2013.04.23 15:44
[c++] mfc로 만든 현재 디렉토리 읽어오기/세팅하기 (GetCurrentDirectory/SetCurrentDirectory)
조회 수 8615 댓글 0
첨부 '2' |
---|
우리가 현재 실행되고 있는 프로그램의 현재 작업 디렉토리를 알아 오기 위해서 위해서 "GetCurrentDirectory()"를 주로 이용합니다.
그럼 아주 쉽게 프로그램의 작업 디렉토리를 알아 옵니다.
여기에서 프로그램이 .dll 혹은 .ocx를 안고 있다면 좀 생각해 보아야 할 상황이
생길 수가 있습니다.
먼저, 프로그램에서 "GetCurrentDirectory()"함수를 이용해서 해당 경로에서 검색을
한다고 할 때, 검색할 폴더의 경로를 GetCurrentDirectory()함수를 통해서 얻어진
경로에 해당 파일을 찾고자 할 때 문제가 발생할 수가 있습니다.
그 문제는 .dll 혹은 .ocx에서 SetCurrentDirectory()함수를 이용해서 현재 Process의
Current Directory를 바꾸어 버리면, 프로그램에서 GetCurrentDirectory()함수를 통해
얻어지 경로는 .dll 혹은 .ocx에서 SetCurrentDirectory()함수를 이용해서 설정한 폴더로
바꾸어 버립니다. 그래서 프로그램에서는 엉뚱한 경로에 가서 해당 파일을 찾다가 못
찾았다고 할 것입니다.
위의 문제를 해결하기 위해서는 프로그램에서 상대경로를 사용하고 있기 때문에 위와
같은 문제를 발생할 수가 있습니다. 그래서 절대경로를 이용하는 방법이 있을테고,
다른 방법은 .dll 혹은 .ocx에서 SetCurrentDirectory()함수를 사용하지 않는 것입니다.
이 문제를 한번 재현해 보고 싶어서 Sample Source를 짜 보았습니다.
정말 우리가 예상했던 결과대로 Current Directory가 바뀌어 버리네요.
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
647 | Develop | [c] kmp 활용 search | hooni | 2013.04.23 | 7478 |
646 | Develop | [c++] mfc 기반 레지스트리(registry) 컨트롤 예제 코드 2 | hooni | 2013.04.23 | 15480 |
645 | Develop | [c++] mfc 기반 멀티수납(wall)시스템 소스와 실행파일 | hooni | 2013.04.23 | 7146 |
644 | Develop | 다운 받아서 테스트 해볼것.. | hooni | 2013.04.23 | 9286 |
» | Develop | [c++] mfc로 만든 현재 디렉토리 읽어오기/세팅하기 (GetCurrentDirectory/SetCurrentDirectory) | hooni | 2013.04.23 | 8615 |
642 | Develop | [c#] BFilter 툴바 소스 코드 ㅎㅎ | hooni | 2013.04.23 | 7748 |
641 | Develop | [c#] MS IE(Internet Explorer) 툴바 버튼 예제 2003/2005 두가지 버전 | hooni | 2013.04.23 | 2090 |
640 | Develop | [c] 네트워크 트래릭 모니터링.. 졸업작품.. 2 | hooni | 2013.04.23 | 11141 |
639 | Develop | [c] 텍스트 파일(로그)을 정해진 라인 단위로 쪼개주는 코드 | hooni | 2013.04.23 | 7092 |
638 | Develop | [c#] mfc 기반의 웹서비스 서버/클라이언트 샘플과 예제 소스 | hooni | 2013.04.23 | 2073 |
637 | Develop | [c++] Win32API를 이용한 ExitWindowsEx 사용한 예제코드 | hooni | 2013.04.23 | 8053 |
636 | Develop | [c#] BHO 한샘툴바랑 동현툴바.. | hooni | 2013.04.23 | 2208 |