포켓 PC 실행 파일 경로 얻기 |
| programming/general 2002/09/10 17:16 |
처음 포켓 PC용으로 프로그램 짜보면서 eMbedded Visual C++의 강력한 힘을 몸으로 느끼며 신나게 작업을 했는 데, 한참을 헤맨 것은 어이없게도 실행 파일의 실행나 작업 디렉토리의 경로를 얻는 함수가 없다는 것이었습니다. (Win32 환경의 GetCurrentDirectory 같은… - 하다 못해 Winmain 에 인자로 넘어오는 실행파일 경로도 안 넘어 오더군요.)
그래서 무식하게 절대 경로로 사용하다가 아래 함수를 사용해서 해결했습니다. (챙피하게도 이 함수 찾는 것도 몇 달 걸렸습니다.)
WINAPI DWORD GetModuleFileName(
HMODULE hModule,
LPWSTR lpFilename,
DWORD nSize );
모듈의 실행 경로를 얻어내는 파일로 WinMain 에 넘어오는 인스턴스를 첫번째 인자로 넘기면 실행한 파일의 파일명을 얻어옵니다. (물론 Unicode 겠죠.) 절대 경로로 넘어오므로 파일명에서 실행 파일의 경로를 얻어낼 수 있습니다.
이 함수를 이용하니 실행파일하고 데이터 파일을 원하는 아무 폴더에나 넣을 수 있게 되었습니다. (이전에는 데이터 파일은 지정해둔 절대 경로에 반드시 있어야 했었죠.)
포켓 PC도 작업하시는 분은 참고하시면 도움이 되실지도...
그래서 무식하게 절대 경로로 사용하다가 아래 함수를 사용해서 해결했습니다. (챙피하게도 이 함수 찾는 것도 몇 달 걸렸습니다.)
WINAPI DWORD GetModuleFileName(
HMODULE hModule,
LPWSTR lpFilename,
DWORD nSize );
모듈의 실행 경로를 얻어내는 파일로 WinMain 에 넘어오는 인스턴스를 첫번째 인자로 넘기면 실행한 파일의 파일명을 얻어옵니다. (물론 Unicode 겠죠.) 절대 경로로 넘어오므로 파일명에서 실행 파일의 경로를 얻어낼 수 있습니다.
이 함수를 이용하니 실행파일하고 데이터 파일을 원하는 아무 폴더에나 넣을 수 있게 되었습니다. (이전에는 데이터 파일은 지정해둔 절대 경로에 반드시 있어야 했었죠.)
포켓 PC도 작업하시는 분은 참고하시면 도움이 되실지도...
댓글을 달아 주세요
GetModuleFileName으로 실행경로를 구하는게 좋은것 같습니다. GetCurrentDirectory는 반드시 현재 실행화일이 존재하는 폴더가 아닐경우도 있기때문에 문제의 소지가 있었습니다.ㅜㅜ; 특히나 MFC로 툴만들때 GetCurrentDirectory로 경로구하면..최근에 로딩한 파일의 경로로 바뀌기때문에..
친구는 너의 위치의 현재 팬이 되었다!