반응형

출처:

http://egloos.zum.com/pingfan/v/7450047

http://exportidea.blogspot.kr/2013/08/windows-dll.html


1. 라이브러리로 사용할 새 프로젝트를 다음과 같이 만든다.

1-1. Win32 프로젝트를 선택하여 만든다.


1-2. 프로젝트를 만들면 대화상자가 뜨는데 다음을 누른다.

그러면 아래와 같은 화면이 뜨는데 우리는 DLL을 만들 것이므로 DLL을 체크한다.

그리고 빈 프로젝트를 체크해 C++ 코드가 추가되는 것을 막는다.



2. 앞에 프로젝트를 만들었으므로 이제 소스와 헤더를 작성할 차례이다.

먼저 헤더와 소스 모두 C언어로 작성된 것이므로 extern C 키워드로 감싼다.

mydll.h

#ifdef _cplusplus
extern C {
    void myFunc();
#ifdef _cplusplus
}
mydll.c

#ifdef _cplusplus
extern C {
#endif
    void myFunc() {
        printf("This is DLL!");
    }
#ifdef _cplusplus
}
#endif




3. 헤더에는 _declspec(dllimport) 키워드를, 소스에는 _declspec(dllexport) 키워드

함수 앞에 붙인다.

mydll.h

#ifdef _cplusplus
extern C {
#endif
    _declspec(dllimport) void myFunc();
#ifdef _cplusplus
}
#endif
mydll.c
#ifdef _cplusplus
extern C {
#endif
    _declspec(dllexport) void myFunc() {
        printf("This is DLL!");
    }
#ifdef _cplusplus
}
#endif



3. 라이브러리를 만들었으면 이 라이브러리를 사용하는 앱을 만들 차례이다.

밑의 화면처럼 이 프로젝트의 추가 경로와 라이브러리에

아까 만든 라이브러리의 경로를 추가하면 된다.


속성->C/C++->일반->추가 포함 디렉터리


속성->링커->일반->추가 라이브러리 디렉터리


이제 빌드만 하면 DLL을 만들고 그 DLL을 사용하는 앱도 사용할 수 있게 된다.

반응형
Posted by 애콜라이트
l

free counters