1
00:00:00,080 --> 00:00:06,240
anyone who's used Windows especially older versions is probably familiar with

2
00:00:04,080 --> 00:00:09,920
the dreaded dll error when you're in the middle of trying to do something

3
00:00:07,839 --> 00:00:13,440
although dll files seem to be important given how much Windows complains when

4
00:00:11,519 --> 00:00:18,720
one is broken or missing it's not exactly obvious what they are so let's

5
00:00:15,759 --> 00:00:22,720
explain why they're a big deal dll stands for dynamic link library but

6
00:00:21,199 --> 00:00:27,680
don't mistake them for a collection of zelda nfts the reason they're called

7
00:00:25,039 --> 00:00:32,559
libraries is that dlls contain shared code that multiple programs can link to

8
00:00:30,160 --> 00:00:35,760
and use kind of like how real libraries contain shared books that many people

9
00:00:34,640 --> 00:00:40,559
can borrow but dlls have an important feature that

10
00:00:37,840 --> 00:00:46,320
books don't several programs can use one dll at the same time and once a dll is

11
00:00:43,760 --> 00:00:50,640
loaded into a certain space in memory any program that needs the code inside

12
00:00:48,239 --> 00:00:54,480
can request access to that memory space without the dll having to be loaded over

13
00:00:52,879 --> 00:00:58,879
and over again a good simple example of this is this

14
00:00:57,039 --> 00:01:03,199
dll file which contains the code for bringing up a Windows popup dialog box

15
00:01:01,600 --> 00:01:07,680
since so many programs use this functionality it makes sense for this

16
00:01:05,119 --> 00:01:11,840
code to be included in Windows as a dll instead of writing it into every program

17
00:01:09,520 --> 00:01:15,600
from scratch another good example is the device driver which is the code that

18
00:01:13,680 --> 00:01:19,920
allows Windows and other programs to communicate properly with hardware

19
00:01:17,600 --> 00:01:23,680
drivers often take the form of dlls though they can appear as dot sys files

20
00:01:21,840 --> 00:01:29,680
in Windows explorer which allows multiple applications to access your GPU

21
00:01:26,640 --> 00:01:32,240
keyboard or printer its drivers at a

22
00:01:29,680 --> 00:01:36,000
time and because dlls are only loaded up when a program specifically asks for

23
00:01:34,159 --> 00:01:40,880
them instead of every time the program starts they also prevent your RAM from

24
00:01:38,320 --> 00:01:44,799
filling up with tons of unnecessary code this modularity means that new

25
00:01:42,560 --> 00:01:48,960
functionality such as game updates or support for different languages can be

26
00:01:46,640 --> 00:01:53,360
added to older programs simply by writing new dlls rather than having to

27
00:01:51,200 --> 00:01:57,119
modify the program itself that's not only more convenient but you don't run

28
00:01:55,200 --> 00:02:01,200
the risk of inadvertently breaking the code of the main executable but if dlls

29
00:01:59,439 --> 00:02:06,320
are such a good idea why are they so notorious for creating problems often

30
00:02:03,759 --> 00:02:09,759
referred to as dll hell we'll tell you right after we thank

31
00:02:07,759 --> 00:02:13,520
freshbooks for sponsoring this episode freshbooks is an easy to use software

32
00:02:11,599 --> 00:02:17,040
built for freelancers and small business owners who don't want to have to waste

33
00:02:14,959 --> 00:02:20,560
time on invoicing accounting and payment processing freshbooks users can

34
00:02:18,800 --> 00:02:24,080
streamline and automate tasks like invoice follow-up and expense tracking

35
00:02:22,480 --> 00:02:28,000
with features like their new digital bills and receipt scanner and with

36
00:02:26,319 --> 00:02:31,680
freshbooks's intuitive dashboard and reports it's easy to see at a glance

37
00:02:29,920 --> 00:02:35,360
exactly where your business stands and turn everything over to your account

38
00:02:33,200 --> 00:02:39,280
income tax season try freshbooks for free for 30 days with no credit card

39
00:02:37,200 --> 00:02:43,280
required at freshbooks.com techquickie so one big reason dlls cause

40
00:02:41,840 --> 00:02:47,840
problems is that when an application depends on lots of dlls it also means

41
00:02:46,080 --> 00:02:53,120
that application has many possible points of failure if a dll gets modified

42
00:02:50,800 --> 00:02:57,360
there's no way for a program that loads up the dll to ensure that the new code

43
00:02:55,360 --> 00:03:02,400
is compatible and if it isn't the program you want will often simply crash

44
00:03:00,160 --> 00:03:06,480
you see some programs will go messing around with dlls in a way that they

45
00:03:04,159 --> 00:03:11,360
shouldn't an installer for example may decide to modify a dll in a way that

46
00:03:08,720 --> 00:03:16,480
helps that specific application but can cause errors in the possibly many other

47
00:03:14,000 --> 00:03:18,800
programs that need the same dll but aren't compatible with the modified

48
00:03:17,920 --> 00:03:24,959
version for a long time microsoft expected third-party software developers to

49
00:03:22,480 --> 00:03:28,159
verify that any dlls they installed especially if they overrode existing

50
00:03:26,560 --> 00:03:31,920
ones would comply with accepted standards but needless to say with

51
00:03:30,480 --> 00:03:36,319
developers typically more concerned about making sure their own software

52
00:03:33,760 --> 00:03:40,480
works it often simply didn't happen and programs kept installing troublesome

53
00:03:38,080 --> 00:03:43,680
dlls with impunity mercifully this problem has been mitigated to a large

54
00:03:42,159 --> 00:03:48,879
extent in more recent versions of Windows microsoft has locked down system

55
00:03:46,640 --> 00:03:52,400
dlls so that third-party applications can't mess with them unless they've

56
00:03:50,400 --> 00:03:57,040
actually been authorized by microsoft itself Windows can now also track dll

57
00:03:55,200 --> 00:04:01,360
installations to try to prevent unknown dlls from making their way onto the

58
00:03:58,720 --> 00:04:05,680
system as well as to allow two different versions of a dll to exist

59
00:04:03,040 --> 00:04:10,319
simultaneously to prevent programs that rely on an older revision from breaking

60
00:04:08,159 --> 00:04:15,040
when you add a new one and with modern pcs having a lot more memory than the

61
00:04:12,400 --> 00:04:19,120
computers of the 90s and early 2000s the memory limitations that necessitated

62
00:04:16,959 --> 00:04:24,000
dlls in the past aren't as prevalent today meaning that modern programs often

63
00:04:21,120 --> 00:04:27,600
don't rely on dlls nearly as much maybe stuffing 64 gigs of RAM in your

64
00:04:25,919 --> 00:04:33,120
personal rig wasn't such a big mistake after all but you know what is a mistake

65
00:04:30,479 --> 00:04:35,600
not liking this video and subscribing so do it
