Microsoft C/C++ 컴파일러를 이용하여 명령행(command-line)에서 DLL을 컴파일-링크하는 과정을 설명하려고 한다.
다음의 소스 파일들이 있다.
dlllib.h: dlllib.c와 dlltest.c에서 include하는 헤더
dlllib.c: DLL 소스 파일
dlltest.c: 애플리케이션 소스 파일
1. DLL 만들기
cl /c dlllib.c
link dlllib.obj /dll
2. 실행 파일 만들기
cl dlltest.c dlllib.lib
3. 샘플 코드
3-1. dlllib.h
/*
dlllib.h: dlllib DLL 관련 헤더
dlllib.h: dlllib DLL 관련 헤더
dlllib.c와 dlltest.c에서 include해서 사용한다.
*/
#ifdef __cplusplus
#define EXPORT extern "C" __declspec(dllexport)
#else
#define EXPORT __declspec(dllexport)
#endif
*/
#ifdef __cplusplus
#define EXPORT extern "C" __declspec(dllexport)
#else
#define EXPORT __declspec(dllexport)
#endif
EXPORT void print();
3-2. dlllib.c
/*
dlllib.c: dlllib.dll을 만들기 위한 소스 코드
dlllib.c: dlllib.dll을 만들기 위한 소스 코드
컴파일: cl /c dlllib.c
링크: link dlllib.obj /dll
*/
#include
#include
#include "dlllib.h"
링크: link dlllib.obj /dll
*/
#include
#include
#include "dlllib.h"
int WINAPI DllMain(HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
{
return TRUE;
}
{
return TRUE;
}
void print()
{
printf("print()\n");
}
{
printf("print()\n");
}
3-3. dlltest.c
/*
dlltest.c: dlltest.exe를 만들기 위한 소스 코드
dlltest.c: dlltest.exe를 만들기 위한 소스 코드
컴파일: cl dlltest.c dlllib.lib
*/
#include
#include "dlllib.h"
*/
#include
#include "dlllib.h"
int main()
{
print();
}
{
print();
}
댓글 없음:
댓글 쓰기