티스토리 뷰
우선 DLL만드는건 아래처럼 하면 됨.
empty project에 체크하지 말것. 체크하지 말아야지 DllMain까지 자동으로 만들어준다.
그리고 이제 아무 것도 건들지 말고 그냥 예제 써보자면
calc.c랑 calc.h를 만들고
각각 이렇게 입력한다.
//calc.h
extern "C" __declspec(dllexport) int add(int lhs, int rhs);
//calc.c
#include "stdafx.h" //요건 상황에 따라 써야할때도 있고 안써도 될 때도 있음.
#include "calc.h"
extern "C" __declspec(dllexport) int add(int lhs, int rhs)
{
return lhs+rhs;
}
그리고 컴파일 하면 DLL파일과 lib 파일이 나온다.
이제 DLL을 사용할 프로젝트에다가 DLL과 lib파일과 헤더파일을 복사 붙여넣기 하고 사용 하면 된다.
사용할 프로젝트에서는
#pragma comment(lib,"이름.lib")
랑 헤더파일을 인클루드 해주고 쓰면 됨.
같은 솔루션 내에서 사용할 DLL이라면 Post-Build Event에다가 DLL을 자동으로 복사하게 해주면 편하다.
예를 들어 이렇게..
copy .\..\debug\example.lib .\..\DLLTest
copy .\..\debug\example.dll .\..\DLLTest
copy .\calc.h .\..\DLLTest
물론 디펜던시도 걸고...(디펜던시를 걸어놓으면 DLL이 먼저 컴파일 된다.)
p.s> dll을 만들 땐 __declspec(dllexport) 이걸 꼭 써줘야 하는데 dll을 사용할 땐 저게 없어도 된다.
즉 헤더 파일 내용이 extern "C" int add(int lhs, int rhs); 이렇게 프로토 타입만 있어도 잘 된다.
그리고 extern "C" __declspec(dllexport) int add(int lhs, int rhs); 이렇게 export로 써있어도 잘 돌아간다 -.-;;
import로 바꾸면 컴파일 시에 소스를 더 잘 컴파일 한다는데.. 귀찮다.. -.-;;
'Development > Windows' 카테고리의 다른 글
[Visual Studio] Navigate Forward/Backward (0) | 2010.12.03 |
---|---|
[MFC] MFC 클래스간 통신 (0) | 2010.12.03 |
[MFC] Executable For Debug Session (2) | 2010.12.03 |
[MFC] SendMessage와 PostMessage (0) | 2010.11.29 |
버튼을 생성했더니 다이얼로그 프로그램 종료가 되지 않았다. (0) | 2010.10.22 |
[MFC] Class 에서 static 멤버 변수 사용하기 (0) | 2010.10.20 |
[UAC] Windows Vista의 사용자 계정 컨트롤(User Account Control : UAC) – 누구를 위한 기능인가? 그리고 왜? (0) | 2010.10.11 |
MFC에서 Draw 사용시 주의할 점들 (0) | 2010.08.24 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- java
- Python
- API
- android
- 프로그래밍
- database
- Troubleshooting
- MFC
- 드라이버
- Visual C++
- gcc
- winapi
- C++
- 음악
- C
- NDK
- db
- 안드로이드
- driver
- Cloud
- jni
- algorithm
- Quiz
- 리눅스
- source
- jni강좌
- it
- linux
- AWS
- kering
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함