Contents

?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
우리가 현재 실행되고 있는 프로그램의 현재 작업 디렉토리를 알아 오기 위해서 위해서 "GetCurrentDirectory()"를 주로 이용합니다.
그럼 아주 쉽게 프로그램의 작업 디렉토리를 알아 옵니다.

여기에서 프로그램이 .dll 혹은 .ocx를 안고 있다면 좀 생각해 보아야 할 상황이
생길 수가 있습니다.

먼저, 프로그램에서 "GetCurrentDirectory()"함수를 이용해서 해당 경로에서 검색을
한다고 할 때, 검색할 폴더의 경로를 GetCurrentDirectory()함수를 통해서 얻어진
경로에 해당 파일을 찾고자 할 때 문제가 발생할 수가 있습니다.

그 문제는 .dll 혹은 .ocx에서 SetCurrentDirectory()함수를 이용해서 현재 Process의
Current Directory를 바꾸어 버리면, 프로그램에서 GetCurrentDirectory()함수를 통해
얻어지 경로는 .dll 혹은 .ocx에서 SetCurrentDirectory()함수를 이용해서 설정한 폴더로
바꾸어 버립니다. 그래서 프로그램에서는 엉뚱한 경로에 가서 해당 파일을 찾다가  못
찾았다고 할 것입니다.

위의 문제를 해결하기 위해서는 프로그램에서 상대경로를 사용하고 있기 때문에 위와
같은 문제를 발생할 수가 있습니다. 그래서 절대경로를 이용하는 방법이 있을테고, 
다른 방법은 .dll 혹은 .ocx에서 SetCurrentDirectory()함수를 사용하지 않는 것입니다.

이 문제를 한번 재현해 보고 싶어서 Sample Source를 짜 보았습니다.
정말 우리가 예상했던 결과대로 Current Directory가 바뀌어 버리네요.

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
349 Develop [c] 파이프(popen)로 다른 프로세스 실행결과 가져오기 file hooni 2013.04.23 8408
348 Develop [c] 텍스트 파일(로그)을 정해진 라인 단위로 쪼개주는 코드 file hooni 2013.04.23 7056
347 Develop [c] 테트리스3D (Tetris 3D) file hooni 2013.04.23 7114
346 Develop [c] 테트리스(Tetris) 게임(도스용) 소스코드 file hooni 2003.04.23 11504
345 Develop [c] 퀵정렬(quick sort) 예제 소스.. file hooni 2013.04.23 7992
344 Develop [c] 콘솔에서 패스워드 입력시 문자 보이지 않게 하는 코드 file hooni 2013.04.23 8358
343 Develop [c] 코드 최적화에 대해.. hooni 2013.04.23 7699
342 Develop [c] 컴파일러 선행처리기 따라하기.. file hooni 2003.04.23 6698
341 Develop [c] 컴파일러 DFA구현^^ 입력 받아 실행 4 file hooni 2003.04.23 8133
340 Develop [c] 캘린더 양음 변환 함수 hooni 2003.04.23 8770
339 Develop [c] 최대공약수, 최소공배수, 서로소 구하기 (펌) hooni 2013.04.23 11196
338 Develop [c] 최대공약수 알고리즘 (유클릿) hooni 2003.04.23 8899
Board Pagination Prev 1 ... 37 38 39 40 41 42 43 44 45 46 ... 71 Next
/ 71