anyone who's used Windows especially older versions is probably familiar with
the dreaded dll error when you're in the middle of trying to do something
although dll files seem to be important given how much Windows complains when
one is broken or missing it's not exactly obvious what they are so let's
explain why they're a big deal dll stands for dynamic link library but
don't mistake them for a collection of zelda nfts the reason they're called
libraries is that dlls contain shared code that multiple programs can link to
and use kind of like how real libraries contain shared books that many people
can borrow but dlls have an important feature that
books don't several programs can use one dll at the same time and once a dll is
loaded into a certain space in memory any program that needs the code inside
can request access to that memory space without the dll having to be loaded over
and over again a good simple example of this is this
dll file which contains the code for bringing up a Windows popup dialog box
since so many programs use this functionality it makes sense for this
code to be included in Windows as a dll instead of writing it into every program
from scratch another good example is the device driver which is the code that
allows Windows and other programs to communicate properly with hardware
drivers often take the form of dlls though they can appear as dot sys files
in Windows explorer which allows multiple applications to access your GPU
keyboard or printer its drivers at a
time and because dlls are only loaded up when a program specifically asks for
them instead of every time the program starts they also prevent your RAM from
filling up with tons of unnecessary code this modularity means that new
functionality such as game updates or support for different languages can be
added to older programs simply by writing new dlls rather than having to
modify the program itself that's not only more convenient but you don't run
the risk of inadvertently breaking the code of the main executable but if dlls
are such a good idea why are they so notorious for creating problems often
referred to as dll hell we'll tell you right after we thank
freshbooks for sponsoring this episode freshbooks is an easy to use software
built for freelancers and small business owners who don't want to have to waste
time on invoicing accounting and payment processing freshbooks users can
streamline and automate tasks like invoice follow-up and expense tracking
with features like their new digital bills and receipt scanner and with
freshbooks's intuitive dashboard and reports it's easy to see at a glance
exactly where your business stands and turn everything over to your account
income tax season try freshbooks for free for 30 days with no credit card
required at freshbooks.com techquickie so one big reason dlls cause
problems is that when an application depends on lots of dlls it also means
that application has many possible points of failure if a dll gets modified
there's no way for a program that loads up the dll to ensure that the new code
is compatible and if it isn't the program you want will often simply crash
you see some programs will go messing around with dlls in a way that they
shouldn't an installer for example may decide to modify a dll in a way that
helps that specific application but can cause errors in the possibly many other
programs that need the same dll but aren't compatible with the modified
version for a long time microsoft expected third-party software developers to
verify that any dlls they installed especially if they overrode existing
ones would comply with accepted standards but needless to say with
developers typically more concerned about making sure their own software
works it often simply didn't happen and programs kept installing troublesome
dlls with impunity mercifully this problem has been mitigated to a large
extent in more recent versions of Windows microsoft has locked down system
dlls so that third-party applications can't mess with them unless they've
actually been authorized by microsoft itself Windows can now also track dll
installations to try to prevent unknown dlls from making their way onto the
system as well as to allow two different versions of a dll to exist
simultaneously to prevent programs that rely on an older revision from breaking
when you add a new one and with modern pcs having a lot more memory than the
computers of the 90s and early 2000s the memory limitations that necessitated
dlls in the past aren't as prevalent today meaning that modern programs often
don't rely on dlls nearly as much maybe stuffing 64 gigs of RAM in your
personal rig wasn't such a big mistake after all but you know what is a mistake
not liking this video and subscribing so do it