- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[API/MFC] 정적 Lib 만들어 이용하기 - 비주얼스튜디오 2008 본문
출처 : http://petra.tistory.com/445
라이브러리(Library)
여러 프로그램에서 자주 사용하는 함수와 데이터들을 실행이 가능한 바이너리 형태로 묶어 놓은 파일.
#include <stdio.h>
printf("Hello, World! \n");
printf()는 stdio.h 에
int __cdecl printf(const char *, ...);
라 선언되어 있고 정의는 없다.
즉, printf()의 선언은 stdio.h 에 존재하지만, printf()의 정의가 컴파일된 바이너리 코드는 라이브러리에 존재한다.
이 라이브러리들은 호출가능한 ANSI표준 C함수들로 구성되어 있기 때문에 'C런타임 라이브러리(Run-Time Library)라 불린다.
C Run-Time Library 예
Libcmt.lib : 멀티스레드, 정적링크
Libcmtd.lib : 멀티스레드, 정적링크 (debug 모드로 컴파일할때 사용) - 파일명이 d로 끝남.
Msvcrt.lib : 멀티스레드, 동적링크
Msvcrtd.lib : 멀티스레드, 동적링크 (debug 모드로 컴파일할때 사용) - 파일명이 d로 끝남.
예제>
VS2008 프로젝트 만들기
그림1.
그림2.
swap.h 소스
void swap(int* v1, int* v2);
swap.cpp 소스
void swap(int* v1, int* v2)
{
int temp = *v1;
*v1 = *v2;
*v2 = temp;
}
컴파일하면 프로젝트폴더/debug 에 SwapStaticLib.lib 생성됨.
다시, 새 프로젝트 생성 시 콘솔응용프로그램 을 선택(그림2 에서) 한다.
새 프로젝트 폴더에 SwapStaticLib.lib 와 swap.h 를 복사 후 새 프로젝트에 swap.h 포함시킨다.
SwapStaticTest.cpp 소스
#include <stdio.h>
#include <tchar.h>
#include "swap.h" // 추가
#pragma comment(lib, "SwapStaticLib.lib") // lib 로딩
int _tmain(int argc, _TCHAR* argv[])
{
int a = 10;
int b = 20;
_tprintf(_T("변경 전 : &d, %d\n"), a, b);
swap(&a, &b);
_tprintf(_T("변경 후 : &d, %d\n"), a, b);
return 0;
}
위 코드에서 #pragma comment(lib, "SwapStaticLib.lib") 대신 아래 그림처럼(프로젝트 속성) 지정할 수 있다.
그림3. 프로젝트에 추가할 Lib 파일 명을 지정
그림4. 추가할 Lib 파일이 있는 폴더 지정
[출처] http://blog.naver.com/PostView.nhn?blogId=monk773&logNo=90151017949
'★─Programing > ☆─API | MFC' 카테고리의 다른 글
[API/MFC] LNK2005 에러 처리 (0) | 2013.06.04 |
---|---|
[API/MFC] CString 선언 헤더파일 (0) | 2013.06.04 |
[API/MFC] "미리 컴파일된 헤더 지시문을 찾는 동안 예기치 않은 파일의 끝이 나타났습니다." (0) | 2013.05.21 |
[API/MFC] Drag & Drop 예제 - DragQueryFile() (0) | 2013.04.22 |
[API/MFC] 파일 드래그 앤 드롭 기능 (0) | 2013.03.04 |