2010-05-04 1 views

답변

0

Dll을 호출하는 경우에는 Dib가 필요합니다. 당신이 일반적으로 가져 오기 라이브러리 (당신의 .LIB) 구축하거나 실행 파일을 만들 연결할 때 연결하여 처리하는 동적 라이브러리에 연결 wikipedia

에서 더 정보를 원하시면

을 아래의 링크를 볼 수 있습니다. 생성 된 실행 파일에는 모든 DLL 함수 호출이 참조되는 가져 오기 주소 테이블 (IAT)이 포함됩니다 (각 참조 된 DLL 함수에는 IAT의 고유 항목이 포함됨). 런타임에 IAT는 별도로로드 된 DLL의 함수를 직접 가리키는 적절한 주소로 채워집니다.

+0

가 필요합니다. – Gtker

+0

@Gtker - .lib는 .H 파일과 비슷하지 않습니다. DLL을 액세스 할 수있는 exe를 빌드 할 때 2 가지 옵션이 있습니다. (i) .h, .lib (컴파일 및 링크 용) 및 .dll (런타임 용) 준비. (ii) Loadlibrary(), GetProcAddress()를 사용하고 dll 함수를 호출하십시오. 이 경우에는 .Lib 또는 .H 파일이 필요하지 않습니다. (내 충고는 두 번째 선택에서 벗어나는 것이다.) – SysAdmin

1

일반적으로 링커에는 .lib, 런타임에는 .dll이 필요합니다. .lib 파일은 "가져 오기 라이브러리"라고하며 링커에게 연결된 .dll 파일에서 찾을 수있는 함수를 알려주는 글루가 포함되어 있습니다.

런타임에는 .dll 파일 만 필요합니다.

이것은 Win32 DLL 프로젝트에 널리 사용되는 레이아웃이며 Winpcap에 국한되지 않습니다.

+0

대부분의 경우, 나는 .lib 또는 .dll 만 필요로하지만, 둘 다 필요하지는 않습니다. – Gtker

+0

@Gtker : 두 파일을 모두 사용하는 것에 대한 우려를 잘 모르겠습니다. 참조한 해당 설명서 페이지의 지침은 저에게 정상적으로 보입니다. –

+0

'.dll'은 언제 "import library"가 필요합니까? MSVCR.dll을 사용하는 많은 프로그램에는 이러한 "가져 오기 라이브러리"가 필요하지 않습니다. – Gtker

1

winpcap뿐만 아니라 모든 외부 라이브러리도 마찬가지입니다.

  • 당신이 특정 라이브러리를 사용하여 소스 코드를 컴파일, 당신이 필요합니다, 당신은 라이브러리에서 *.h를 헤더 파일이 필요하고 실행에 그 *.o 파일을 링크 할 때 당신은 *.o 파일
  • 을 얻을 것이다 *.lib 또는 *.dll.a 파일. 당신이 그 실행 파일을 실행하면
  • , 당신은 그것은 그`.lib` 닮았다 '.H'파일을 여기 보인다 *.dll 파일
+0

'.lib' 또는'.dll' 대소 문자는 이해하지만'.lib'은 아니고 ** and **'.dll'은 – Gtker

+0

입니다. @Gtker는 실행 파일을 실행할 때 (컴파일하지 않음), .lib가 필요하다는 것을 의미합니다 ? – YOU

+0

"가져 오기 라이브러리"가 무엇인지 이해하지 못합니다. 지금까지는 "개체 라이브러리"만 사용했습니다. – Gtker