|
lib 파일은 그 lib파일에 어떤 함수들이 정의되어 있는지 설명해주는 헤더파일(*.h 파일)이 필요합니다. lib파일내에 있는 함수들의 형태(printf 라면 int printf(char *str, ...); 이런식으로 어떤 형식을 함수 인자로 받으며 몇개를 받으며 결과는 어떤 형식으로 돌려주는지...)를 알고 계시면 헤더파일을 직접 만들어도 됩니다. 그래서 lib안에 있는 함수를 사용하는 곳에서 그 헤더파일을 #include 로 프로그램 처음에 정의해 주면 그 함수를 사용할수 있습니다. 링크할때는 그 lib 파일이 같이 링크가 되어야 합니다.
dll 파일은 dll 약자 의미 그대로 Dynamic Linked Library, 즉 lib 파일처럼 실행파일에 같이 포함되어 실행중에 메모리에 항상 상주해 있는 함수들이 아닌 함수가 필요할때마다 메모리로 읽어들여 실행하는 형식입니다. 아래는 dll파일내에 있는 함수를 사용하는 예입니다. 먼저 LoadLibrary함수로 dll파일을 읽어서 GetProcAddress로 해당함수의 위치를 찾아냅니다. 이 메모리상 위치를 정의한 myfunc에 대입하여 dll내에 있는 이 함수가 수행되도록 하는 식입니다. 마지막에 FreeLibrary로 dll을 해제시켜줘야 합니다.
#include <windows.h>
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
HINSTANCE hlib;
int (WINAPI *myfunc)(int, int);
hlib = LoadLibrary("mydll.dll");
if (hlib)
{
(FARPROC) myfunc = GetProcAddress(hlib, "_indllfunc");
myfunc(1, 2);
FreeLibrary(hlib);
}
return 0;
}
김원평 님이 쓰신 글 :
: 윈도우즈 98환경이구요. 볼란드C++3.1을 사용하고 있습니다.
:
: dll 파일과 lib 파일은 구했는데요.
: 어떻게 사용하는줄을 모르겠습니다.
:
: dll파일과 lib파일로 같이 링크를 시킬려면
: 도스 모드에서 명령어 타이핑해야 하나요?
: 아니면 통합환경에서 실행하는 방법이 있나요?
:
: 아시는분 꼭 답변 부탁드립니다.
: 감사합니다.
|