Admin | Write | GuestBook
[공지] 해당 블로그에 용건이 있으신 분께서는 http://blog.fore.kr/ 의 방명록(Guestbook)으로 부탁드립니다.
[API] 현재 실행중인 프로그램 경로 구하기 및 폴더 생성
Category : Programming/Programming Talk | URL : | Written by 포레 ( 2013. 5. 31. 15:24 ) | 신고

포스팅 적고 싶은데 적을게 없으니 이런거나 간간히 적어줘야죠.

 

 [ 폴더 생성 ]

 

 BOOL WINAPI MyCreateDirectoryW(LPWSTR lpDirectory){
  LPWSTR   lpString = lpDirectory;

  while(*lpString){
   if ( *lpString == L'\\' ){
    *lpString = 0;
    CreateDirectoryW(lpDirectory,NULL);
    *lpString = L'\\';
   }
   lpString++;
  }
  return CreateDirectoryW(lpDirectory,NULL);
 }

 

 

 [ 현재 실행중인 프로그램의 경로 ]

 

 int WINAPI GetCurrentProcessPathW(LPWSTR lpPath,int nPathLength){
  WCHAR    wPath[MAX_PATH+1];
  LPWSTR    lpString;
  DWORD    dwLength;

 

  lpString = wPath;
  lpString += GetModuleFileNameW(NULL,lpString,MAX_PATH);
  while(*lpString != L'\\') lpString--;
  *lpString = 0;

  dwLength = lpString-wPath;
  dwLength = (dwLength<nPathLength)?dwLength:nPathLength;

  memcpy(lpPath,wPath,dwLength*sizeof(WCHAR));
  *(lpPath+dwLength) = 0;

  return dwLength;
 }

 

 

참고로 GetCurrentDirectory 함수는 비추천함. 설명하기 귀찮으니 이하 생략.

 

하고 싶은데, 간단히 설명하면 특별한 설정을 해주지 않는 프로세스가 해당 exe를 호출하면

 

타 프로세스(exe)의 현재 경로 시점에서 처리되어 언제든지 가변될 수 있다.

※ CreateProcess 의 LPCTSTR lpCurrentDirectory 변수 참고바람.

 

 

p.s >

 // TestApp.cpp

 

 int main(void){
 WCHAR   wPath[MAX_PATH+1];

 GetCurrentProcessPathW(wPath,MAX_PATH);
 wprintf(L"GetCurrentProcessPath : %s\n",wPath);
 GetCurrentDirectoryW(MAX_PATH,wPath);
 wprintf(L"GetCurrentDirectory : %s\n",wPath);
 return 0;
}

 

 

 

 

이런 일이 발생함.

 

 

Category
분류 전체보기 (605)
Notice (6)
Programming (79)
DISKER (1)
FSCH (7)
Caption (0)
Rest Time ! (443)
Hobby (64)
Tour (5)
Blind Post (0)
Recent Post
Recent Comment
Link
Calender
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Total :
Today :
Yesterday :