c programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/dll2-9055-eyestorys.pdf · dll...

17
www.hackerscollege.org www.hackerscollege.org Cho Youn Ki C_Programming C_Programming 20 20

Upload: others

Post on 28-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: C Programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/DLL2-9055-eyestorys.pdf · DLL (dynamic linking library ) 정의 작은프로그램들의집합으로서, 컴퓨터내에서실행되고있는큰프로

www.hackerscollege.orgwww.hackerscollege.orgCho Youn Ki

C_ProgrammingC_Programming

2020강강

Page 2: C Programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/DLL2-9055-eyestorys.pdf · DLL (dynamic linking library ) 정의 작은프로그램들의집합으로서, 컴퓨터내에서실행되고있는큰프로

www.hackerscollege.orgwww.hackerscollege.orgCho Youn Ki

main main 함수와함수와사용자함수사용자함수 나누기나누기

새로운새로운 c source filec source file을을 생성생성

생성된생성된 파일에파일에 사용자사용자 정의정의 함수함수 저장저장

c header file c header file 생성생성

c source filec source file과과 같은같은 이름으로이름으로 생성생성

사용자사용자 정의정의 함수명만함수명만 정의정의

구조체구조체, , 매크로매크로 정의정의 가능가능

Page 3: C Programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/DLL2-9055-eyestorys.pdf · DLL (dynamic linking library ) 정의 작은프로그램들의집합으로서, 컴퓨터내에서실행되고있는큰프로

www.hackerscollege.orgwww.hackerscollege.orgCho Youn Ki

DLLDLL(dynamic linking library )(dynamic linking library )

정의정의

작은작은 프로그램들의프로그램들의 집합으로서집합으로서, , 컴퓨터컴퓨터 내에서내에서 실행되고실행되고 있는있는 큰큰 프로프로그램에서그램에서 필요로필요로 할할 때때 호출하여호출하여 사용할사용할 수수 있는있는 파일파일

장점장점

메모리를메모리를 절약할절약할 수수 있고있고 스와핑을스와핑을 줄일줄일 수수 있다있다..

디스크디스크 용량을용량을 줄일줄일 수수 있다있다..

프로그램프로그램 실행속도가실행속도가 빨라진다빨라진다..

DLLDLL을을 업그레이드업그레이드 하기가하기가 쉽다쉽다..

여러여러 가지가지 프로그램언어로프로그램언어로 된된 응용응용 프로그램을프로그램을 지원한다지원한다..

리소스리소스 교체가교체가 가능하다가능하다..

프로젝트프로젝트 관리가관리가 용이하다용이하다

단점단점

프로그램프로그램 배포시배포시 해당해당 DLLDLL을을 함께함께 배포배포 해야해야 한다한다

Page 4: C Programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/DLL2-9055-eyestorys.pdf · DLL (dynamic linking library ) 정의 작은프로그램들의집합으로서, 컴퓨터내에서실행되고있는큰프로

www.hackerscollege.orgwww.hackerscollege.orgCho Youn Ki

Import functionImport function

형식형식

extern "C"extern "C" ____declspec(dllimportdeclspec(dllimport)) 리터형리터형 함수명함수명((매개변수매개변수,...) ;,...) ;

내용내용

메인프로그램에서메인프로그램에서 DLLDLL에에 있는있는 함수를함수를 호출할호출할 때때 사용한다사용한다..

Page 5: C Programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/DLL2-9055-eyestorys.pdf · DLL (dynamic linking library ) 정의 작은프로그램들의집합으로서, 컴퓨터내에서실행되고있는큰프로

www.hackerscollege.orgwww.hackerscollege.orgCho Youn Ki

Export functionExport function

형식형식extern "C"extern "C" ____declspec(dllexportdeclspec(dllexport)) 리터형리터형 함수명함수명((매개변수매개변수,...),...){{

내용내용;;}}

내용내용DLLDLL에서에서 정의되는정의되는 것으로것으로 다른다른 DLLDLL이나이나 메인메인 프로그램에서프로그램에서 가져갈가져갈 수수 있도록있도록허용하는허용하는 함수이다함수이다..

Page 6: C Programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/DLL2-9055-eyestorys.pdf · DLL (dynamic linking library ) 정의 작은프로그램들의집합으로서, 컴퓨터내에서실행되고있는큰프로

www.hackerscollege.orgwww.hackerscollege.orgCho Youn Ki

DLL DLL 만들기만들기

Page 7: C Programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/DLL2-9055-eyestorys.pdf · DLL (dynamic linking library ) 정의 작은프로그램들의집합으로서, 컴퓨터내에서실행되고있는큰프로

www.hackerscollege.orgwww.hackerscollege.orgCho Youn Ki

Page 8: C Programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/DLL2-9055-eyestorys.pdf · DLL (dynamic linking library ) 정의 작은프로그램들의집합으로서, 컴퓨터내에서실행되고있는큰프로

www.hackerscollege.orgwww.hackerscollege.orgCho Youn Ki

Page 9: C Programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/DLL2-9055-eyestorys.pdf · DLL (dynamic linking library ) 정의 작은프로그램들의집합으로서, 컴퓨터내에서실행되고있는큰프로

www.hackerscollege.orgwww.hackerscollege.orgCho Youn Ki

HeaderSource생성

Page 10: C Programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/DLL2-9055-eyestorys.pdf · DLL (dynamic linking library ) 정의 작은프로그램들의집합으로서, 컴퓨터내에서실행되고있는큰프로

www.hackerscollege.orgwww.hackerscollege.orgCho Youn Ki

HeaderHeader

Page 11: C Programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/DLL2-9055-eyestorys.pdf · DLL (dynamic linking library ) 정의 작은프로그램들의집합으로서, 컴퓨터내에서실행되고있는큰프로

www.hackerscollege.orgwww.hackerscollege.orgCho Youn Ki

sourcesource

Page 12: C Programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/DLL2-9055-eyestorys.pdf · DLL (dynamic linking library ) 정의 작은프로그램들의집합으로서, 컴퓨터내에서실행되고있는큰프로

www.hackerscollege.orgwww.hackerscollege.orgCho Youn Ki

Debug / release modeDebug / release mode

DebugDebug

개발자가개발자가 테스트를테스트를 위해위해 만드는만드는 프로그램프로그램

Debug Debug 가능가능

Release Release

개발개발 완료완료 후후 최종최종 프로그램프로그램 출시시출시시 사용사용

Debug Debug 불가능불가능

Page 13: C Programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/DLL2-9055-eyestorys.pdf · DLL (dynamic linking library ) 정의 작은프로그램들의집합으로서, 컴퓨터내에서실행되고있는큰프로

www.hackerscollege.orgwww.hackerscollege.orgCho Youn Ki

File File 옮기기옮기기

Debug Debug 혹은혹은 release release 폴더의폴더의 DLL, LIB DLL, LIB 파일과파일과 프로그램프로그램 작성작성 폴더안폴더안의의 header header 파일을파일을 DLL DLL 파일을파일을 사용할사용할 폴더에폴더에 이동이동

Page 14: C Programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/DLL2-9055-eyestorys.pdf · DLL (dynamic linking library ) 정의 작은프로그램들의집합으로서, 컴퓨터내에서실행되고있는큰프로

www.hackerscollege.orgwww.hackerscollege.orgCho Youn Ki

Alt + F7을 이용하여창을 연다

Page 15: C Programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/DLL2-9055-eyestorys.pdf · DLL (dynamic linking library ) 정의 작은프로그램들의집합으로서, 컴퓨터내에서실행되고있는큰프로

www.hackerscollege.orgwww.hackerscollege.orgCho Youn Ki

Link Tab을 이용하여창을 열고 빨간 부분의마지막 부분에 lib파일을추가한다.

Page 16: C Programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/DLL2-9055-eyestorys.pdf · DLL (dynamic linking library ) 정의 작은프로그램들의집합으로서, 컴퓨터내에서실행되고있는큰프로

www.hackerscollege.orgwww.hackerscollege.orgCho Youn Ki

이처럼 header를 추가시키고DLL file에 있는 함수를 사용

Page 17: C Programming - pds16.egloos.compds16.egloos.com/pds/201001/18/02/DLL2-9055-eyestorys.pdf · DLL (dynamic linking library ) 정의 작은프로그램들의집합으로서, 컴퓨터내에서실행되고있는큰프로

www.hackerscollege.orgwww.hackerscollege.orgCho Youn Ki

참고문헌참고문헌

새내기를새내기를 위한위한 CC언어언어 완성완성 ((이한이한 출판사출판사))

다시다시 체계적으로체계적으로 배우는배우는 CC언어언어 포인터포인터((정보문화사정보문화사))

인천대학인천대학 PPTPPT자료자료

서울대학서울대학 PPTPPT자료자료