최상단 광고

2012년 4월 8일 일요일

DLL 만들기의 단순한 예


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.c와 dlltest.c에서 include해서 사용한다.
*/
#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을 만들기 위한 소스 코드
컴파일: cl /c dlllib.c
링크: link dlllib.obj /dll
*/
#include
#include
#include "dlllib.h"

int WINAPI DllMain(HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
{
    return TRUE;
}

void print()
{
    printf("print()\n");
}


3-3. dlltest.c
/*
dlltest.c: dlltest.exe를 만들기 위한 소스 코드
컴파일: cl dlltest.c dlllib.lib
*/
#include
#include "dlllib.h"

int main()
{
    print();
}

댓글 없음: