링크 : http://syung1104.blog.me/181447343 

Dynamic-Link Library 가 생성되면 .lib .dll 이 생성된다.
dll를 링크 걸어서 실행시킬때
error LNK2019: unresolved external symbol "__declspec(dllimport)
가 발생하는 경우가 있는데

다음의 2가지를 의심해 본다.
1. 오류가 발생하면 기본적으로 .lib 파일이 제대로 연결되었는지 확인한다.
2. 그래도 찾을수 없다면 dumpbin 도스 유틸리티로 .dll .lib 파일을 직접 확인해서
   함수목록이 제대로 임포트 되었는지 확인해야 한다.

명령>>dumpbin /exports "읽을파일"




ps. 위의 이미지는 SQLite3를 Windows CE용으로 컴파일 한 .lib 파일 입니다.

posted by 뚱2

초보 DLL 사용하기

OS/Windows 2008. 2. 21. 16:48

DLL (Dynamic Linking Library) 입니다.
우선 초보인 제 입장에서는 만들기도 힘들고
가져다 쓰기도 힘드네요 ㅡ,.ㅡ;

우선 개념을 잡자면...

DLL 소스를 컴파일 하면은 .lib와 .dll이 생성됩니다.
    1.  .h는 컴파일 과정에서 필요합니다. 함수나 클래스의 선언이 되어 있어야지 컴파일 되겠죠...
    2.  .lib는 링크 과정에서 필요합니다. 이유는 정적 lib는 링크과정에서 포함되어서 .exe파일이 만들어
        집니다. 그렇지만 Dll의 lib는 링크과정에서 어디 어디 무슨 파일이 있는지 실행위치 같은 정보가
        들어있어서 링크되어 지는 것입니다.
    3. dll은 런타임 과정(실행시)에서 필요합니다.

.h는 필요한곳에 선언해서 사용하고
.lib는 #pragma comment나 Project -> Setting에서 설정해주시면 됩니다.
.dll은 찾는 순서
    1. 클라이언트 프로그램(EXE)을 포함하는 디렉토리
    2. 현재 작업 디렉토리
    3. 윈도우 시스템 디렉토리
    4. 윈도우 디렉토리
    5. Path 환경변수에 설정된 디렉토리
에서 찾을수 있습니다.
보통 개발할때는 저는 1번을 많이 이용합니다.

posted by 뚱2