본문 바로가기
VisualStudio.C++.C#/코딩팁,함수활용,단편

DLL 의 절대 경로 알아내기. GetModuleFileName

by 리치굿맨 2016. 1. 28.


 

개요.

 
DLL 의 절대 경로 알아내기. 

필요성.
DLL 내에서 파일입출력 처리가 있는 경우 DLL내에서 경로처리를 하지 않은 경우 DLL을 로딩한 프로세스의 Current Directory 기준으로 경로 처리된다.  DLL 파일이 있는 동일경로로 접근하기 위해서 DLL코드내에서 자신의 절대경로를 확인하여 접근할때 필요함.

구현방법. 
DLL 코드내에서 함수 GetModuleFIleName 또는 GetModuleFileNameEx 사용한다.

본 함수는 프로세스 코드에서 호출할수도 있고, DLL 코드에서 호출할 수도 있다.
DLL 내에서 호출하는 경우는 관계없지만 프로세스 내에서 호출할때는 아래 처럼 함수를 달리 적용해야한다.
GetModuleFIleName : DLL 이 현재 프로세스에서 로딩된 경우에만 사용가능.
GetModuleFileNameEx : DLL이 다른 프로세스에서 로딩된 경우에 사용.

함수 호출하여 반환 받게 되는 경로명 형식 예. 
D:\WORK_SW2016_CYPC1\SW_CySignal\CySignal\Release\CyFinAPI\CyFinAPI.dll
dll 파일명 포함해서 전체경로를 받을 수 있다. 

 

DLL 을 임포팅한 실행프로그램 경로를 확보하려면 함수 GetModuleFileName 의 1번 인자에 NULL 을 전달하면 된다.

예. D:\WORK_SW2016_CYPC1\SW_CySignal\CySignal\Release\CySignal.exe


 


기본문법. - 아래 MSDN의 설명에서의 "module" 이 dll 류를 의미함. 



 


 


 본 글이 포함된 상위 정리 장소.

 

 Visual Studio/VC++/C/C# 활용정리 -> http://igotit.tistory.com/11

 

 

///632.

댓글0


   
현물 |선물 인버스 |선물 USDT     현물 | 선물 USDT |봇제작툴/카피트레이딩     현물 |선물 인버스 |선물 USDT     선물 인버스 |선물 USDT