|
라이브러리엔 두가지가 있죠
static-library인 xxx.lib와
dynamic-link-library인 DLL
static-library는 컴파일할때 PE파일에 같이 포함되어 링크됩니다만
DLL은 말그대로 동적으로 컴파일할때가 아니라 프로그램실행할때 링크되는 라이브러리 입니다.
DLL을 사용할때 가장 기본적인 방법은?
1) LoadLibrary - dll 로드하구
2) GetProcAddress - 함수를 주소를 찾구
3) call func - 찾은 함수를 사용하구
4) FreeLibrary - Load한 dll을 해제 하죠
그런데 dll (또는 bpl)을 사용할때 마다 위 과정을 하는것이 너무 귀찮고 불편합니다.
그 불편함을 해소하기 위해 Import-Library라는게 있는것입니다.
impot-library란?
impot-library란?
DLL을 Static-Lib처럼 쓰도록 만들어주는 라이브러리입니다.
ImpLib 유틸은?
이름 그대로 DLL에서 Export된 함수의 정보를 빼내어 Import- Library를 만들어 주는 유틸입니다.
import-lib는 static-lib와 달리 함수코드 바이너리가 포함되어있지 않습니다.
함수에 대한 정보만 있죠
import-lib를 프로젝트에 포함시키거나 해서 링크해주면
process가 시작될때 loader가 알아서 dll을 load해서 함수의 링크해줍니다.
load 및 해제 신경쓰지 않아도 되는것이죠
문론 dll을 같이 배포해야 하구요
implib , COFF2OMF 등의 유틸은 라이브러리(static-lib , dll ) 등을 링크시키는데 도와주는 유틸입니다.
(COFF2OMF는 잘 안써봐서 .. 비슷한 목적의 툴인것으로 알고있음)
그럼..
도상곤 님이 쓰신 글 :
: 이렇게 해석이다되어있는데도 이해불가능이네요;;
:
: 이걸 설치하는방법을 글로좀써주실분없으신가;;
:
: coff2omf툴이뭐구;; implib tool은 또 뭐구;;
:
: 방콕폐인 님이 쓰신 글 :
: : 방콕폐인입니다.
: : 영어는 쥐뿔도 모르는 녀석의 발번역본입니다.
: :
: : Borland C++에서 ZLIB1.DLL 사용
: : ==================================
: : 1. 제공된 헤더파일들 'zlib.h' 와 'zconf.h'를 개발툴의 INCLUDE 경로 리스트에 있는 폴더로 설치하세요 .
: :
: : 2. IMPLIB tool을 사용해서 라이브러리 파일을 만드세요 :
: : implib -a -c -f lib\zdllbor.lib zlib1.dll
: :
: : 또는
: :
: : 2'. 제공된 라이브러리 파일 'zdll.lib'을 coff2omf 툴을 사용해서 OMF 포멧으로 변환하세요.
: : coff2omf lib\zdll.lib lib\zdllbor.lib
: :
: : // 2. 또는 2'. 둘중 한가지 방법으로 BCC에 맞는 라이브러리 파일을 만듭니다.
: :
: : 3. 'zdllbor.lib'을 개발툴의 LIB 경로 리스트에 있는 폴더로 설치하세요.
: : 4. 'zdllbor.lib'를 프로젝트에 추가하세요.
: :
: : Notes:
: : - 모듈들은 4-byte 얼라인먼트 옵션(-a)을 사용해서 컴파일 되어야 하고 'zlibbor.lib'와 링크되었습니다.
: : bcc32 -a -c myprog.c
: : bcc32 myprog.obj zdllbor.lib
: : - 원한다면, 생성하는 라이브러리 파일 이름을 'zdllbor.lib' 대신 'zlib1.lib'를 사용해도 됩니다.
: :
: : 도상곤 님이 쓰신 글 :
: : : 설치하는방법이나 이런게 다 영어로되어있어서
: : :
: : : 해석이불가능하네요 ㅠㅠ
: : :
: : : Using ZLIB1.DLL with Borland C++
: : : ================================
: : : 1. Install the supplied header files "zlib.h" and "zconf.h"
: : : into a directory found in the INCLUDE path list.
: : :
: : : 2. Build the import library using the IMPLIB tool:
: : : implib -a -c -f lib\zdllbor.lib zlib1.dll
: : :
: : : OR
: : :
: : : 2' Convert the supplied library file "zdll.lib" to OMF format,
: : : using the COFF2OMF tool:
: : : coff2omf lib\zdll.lib lib\zdllbor.lib
: : :
: : : 3. Install "zdllbor.lib" into a directory found in the LIB path
: : : list.
: : :
: : : 4. Add "zdllbor.lib" to your project.
: : :
: : : Notes:
: : : - The modules that are linked with "zdllbor.lib" must be compiled
: : : using a 4-byte alignment (option -a):
: : : bcc32 -a -c myprog.c
: : : bcc32 myprog.obj zdllbor.lib
: : : - If you wish, you may use "zlib1.lib" instead of "zdllbor.lib".
: : :
: : : 라고는 나와있긴한데 해석불가능;;
: : :
: : : 설치하는방법하고 사용할때 간단한예제소스좀 부탁드립니다.
|