DLL관련 질문입니다

carpe의 이미지

dll을 공부하다가 여러 궁금증이 생겼습니다.

답변 부탁드리겠습니다.

1. 자기 자신을 로딩하는것도 가능한가요?
즉 dll에서 자기 자신을 다시 LoadLibrary 하였을경우 어떻게 되나요?

2. LoadLibrary를 하면 dll의 핸들값을 return을 하는데요,
그럼 여러 모듈에서 하나의 dll을 LoadLibrary하면 동일한 handle값이 return되는 것인가요?

3. dll을 로딩한 모듈이 FreeLibrary()를 하지 않고 종료를 해버리면 해당 dll은 자동으로 Freelibrary()가 되나요?
, A라는 모듈이 B라는 dll을 로딩하고 B라는 dll이 다시 C라는 dll을 로딩하였을 경우에
A모듈이 그냥 종료하면 B dll과 C dll은 자동으로 free가 되는것인가요??

4. 일반 모듈에서 dll을 로딩하는것과 dll에서 다른 dll을 로딩하는것에 있어서 차이가 있나요??

질문이 좀 많긴한데요, 답변 부탁드리겠습니다. ~

chadr의 이미지

1. 자기 자신을 로딩하는것도 가능한가요?
즉 dll에서 자기 자신을 다시 LoadLibrary 하였을경우 어떻게 되나요?
->자기 자신을 로딩하는것도 가능은 합니다.. 그런데 잘못하다간 무한 재귀 로딩이 될지도 모르니 추천하진 않습니다.

2. LoadLibrary를 하면 dll의 핸들값을 return을 하는데요,
그럼 여러 모듈에서 하나의 dll을 LoadLibrary하면 동일한 handle값이 return되는 것인가요?
->dll을 로딩하면 각 dll이 모듈의 가상메모리에 매핑이 되므로 모듈끼리 핸들공유는 안됩니다.

3. dll을 로딩한 모듈이 FreeLibrary()를 하지 않고 종료를 해버리면 해당 dll은 자동으로 Freelibrary()가 되나요?
, A라는 모듈이 B라는 dll을 로딩하고 B라는 dll이 다시 C라는 dll을 로딩하였을 경우에
A모듈이 그냥 종료하면 B dll과 C dll은 자동으로 free가 되는것인가요??
->우선 기본적으로 프로세스가 종료가 되면 해제되지 않은 모든 시스템자원은 os가 회수를 하긴 합니다.

4. 일반 모듈에서 dll을 로딩하는것과 dll에서 다른 dll을 로딩하는것에 있어서 차이가 있나요??
->차이는 없습니다.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.