dll,lib 질문드립니다.

brainz의 이미지

저는 여태까지
dll파일은 동적으로 로드하는 라이브러리 -> LoadLibrary()함수를 통해서
lib파일은 정적으로 로드하는 라이브러리 -> 링커옵션에 추가 or #pragma comment

이렇게만 알고있었는데,

A라는 라이브러리를 빌드해서 나온 추출결과가 A.lib, A.dll 두개 일경우

링커옵션으로 A.lib를 추가한다음에 A.dll 파일을 실행파일과 동일한 경로에 넣어둬야지

안넣으면 아래와 같은 에러가 발생하면서 실행이 안되네요..

그러니깐 lib파일을 정적으로 링크 시켰는데 왜 dll파일이 또 필요한지 궁금하네요 (__)
인터넷에 좀 찾아봤는데 확실한 글을 못찾아서 질문드립니다. 항상 좋은하루되세요

File attachments: 
첨부파일 크기
Image icon 없음.png9.17 KB
익명 사용자의 이미지

klib.lib가 static library가 아니라 dll에 대한 import library라서 그런걸 겁니다.

익명 사용자의 이미지

Visual Studio 프로젝트에는 Dynamic Link Library 와
Static Link Library 이렇게 두 가지가 따로 있습니다.

Dynamic Link Library 프로젝트를 빌드해도 lib 가 나오고
이게 정적 링크가 가능한 lib 라면 굳이 따로 프로젝트를
놓았을 이유가 없겠지요?

mirheekl의 이미지

DLL을 직접 링크하는 것이 약간 번거로운 면이 있어서 보통 쉽게 사용하라고 LIB파일을 같이 제공합니다. 그런데 이 LIB파일이 라이브러리 본체가 아니고 사실상 해당 DLL을 불러들이는 역할만 하는 LIB인 것입니다. (말하자면 휴대폰 충전기의 젠더같은 역할입니다.) 그러니 결국 DLL파일도 필요해지는 것이죠. 보기에는 이상해보이지만 직접 LIB없이 DLL파일을 임포트해서 사용해보시면 어느정도 이해가 되실겁니다.

물론 아예 DLL파일이 없이 돌아가도록 만들어진 LIB도 있고 이것이 원래의 용도인건 알고 계신 그대로입니다.

또는, 라이브러리 본체는 LIB에 들어있지만, 그 라이브러리가 또다시 다른 DLL파일을 참조하도록 되어 있는 경우도 있습니다. 구조상으로는 첫 번째 케이스와 같지요. 이 경우에는 대개 DLL파일 이름이 LIB와 다르지만요.

--

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.