How DLL exports really work

I found this list of article on Raymond’s blog. Raymond’s blog is one of the more interesting for programmers who use native APIs because he often touchs on things that are not documented, but interesting to know if you care about how things really work under the hood.

These links all point to information that goes into DLL importing and exporting, and how it is implemented under the hood. Very interesting stuff.

  • How were DLL functions exported in 16-bit Windows?
  • How were DLL functions imported in 16-bit Windows?
  • How are DLL functions exported in 32-bit Windows?
  • Exported functions that are really forwarders
  • Rethinking the way DLL exports are resolved for 32-bit Windows
  • Calling an imported function, the naive way
  • How a less naive compiler calls an imported function
  • Issues related to forcing a stub to be created for an imported function
  • What happens when you get dllimport wrong?
  • Names in the import library are decorated for a reason
  • The dangers of dllexport
  • Another thing which may be useful if you haven’t read it yet are Michael Grier’s articles on the NT DLL loader over here. I’ve blogged about those articles before. Michael is one of the project leaders who maintained the NT DLL loader for some time.


    Leave a Reply

    Your email address will not be published. Required fields are marked *