SW 개발

win32API - API설명 - FreeLibrary()

. . . 2008. 12. 26. 23:49
반응형
  • 한글 MSDN : <http://msdn.microsoft.com/ko-kr/library/h4ff11tc.aspx

FreeLibrary 및 AfxFreeLibrary

DLL에 명시적으로 링크하는 프로세스는 해당 DLL 모듈이 더 이상 필요하지 않을 때 FreeLibrary 함수를 호출합니다. 이 함수는 해당 모듈의 참조 횟수를 1만큼 줄이며, 참조 횟수가 0이면 프로세스의 주소 공간에서 해당 모듈을 매핑 해제합니다. MFC 응용 프로그램에서 확장 DLL을 언로드하려면 FreeLibrary 대신 AfxFreeLibrary를 사용해야 합니다. AfxFreeLibrary에 대한 인터페이스(함수 프로토타입)는 FreeLibrary의 경우와 같습니다.

함수 사용

사용예제...

//dll에 있는 int Factory(int num) 과 같은 형태의 함수를 typedef로 설정한다.

typedefint(\*FactoryFunc)(int num);

//typederf로 설정된 FactoryFunc의 변수를 설정한다.

FactoryFunc lpFactoryFunc;   //Dll 인스턴스 핸들 설정
HINSTANCE hDll;              //Dll를 로드한다.

hDll=LoadLibrary("ExRegularDll.dll");

if(hDll==NULL)
{
    AfxMessageBox("ExReqularDll이 없습니다.");
    return;
}

lpFactoryFunc=(FactoryFunc)GetProcAddress(hDll,"Factory");  //함수를 얻는다.


if(lpFactoryFunc==NULL)
{
    AfxMessageBox("Factory 함수가 없습니다. ");
    return;
}
int num=lpFactoryFunc(2);

**FreeLibrary(hDll);
//DLL 해제
반응형