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 <windows.h>
#include <stdio.h>
#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 <windows.h>
#include "dlllib.h"

 

int main()
{
    print();
}

+ Recent posts