What Do DLLs Do?

  • Thread starter Thread starter Nehmo
  • Start date Start date
N

Nehmo

When an application, let's say Word, loads a printer DLL, what exactly
is the app doing? What does a printer DLL do? Do simpler apps, like
Notepad, load printer DLLs too? Do all printers have DLLs associated
with them?
 
DLL = Modular code or Reusable code. Most all programs are written
in a formatting called Routines. A function or operation is called. Instead
of writing lots of the same things from scratch you use a DLL (Dynamic
Link Library). It's also done so that programs can be smaller in size. So
if your code needs 100 routines, you use 50 from DLLs and only have
to write the 50 specific to your application. This way your program will
execute it's internal routines and then "Call" the other routines from Dll
modules.
 
R. McCarty said:
DLL = Modular code or Reusable code. Most all programs are written
in a formatting called Routines.
Today we call them methods and they can consist of a pure method in that
they do something or a function where they return something.
 
Appreciate the info, I guess it show my age. At least I didn't refer
to them as Subroutines.
 
What Do DLLs Do?
<Humor - your question has already been answered>

DLL files come in two flavors. Those who hang out resident in memory
and those that are are loaded as needed. What they do? The ones that
stay resident in memory flood your physical memory making sure that
programs, things you actually are using, have to swap to disk ruining
your efficency, and ones that are loaded dynamicly cause conflicts and
result in a crash.

That's what they do... fill up your ram and crash your computer. They
do that very well.
 
When an application, let's say Word, loads a printer DLL, what exactly
is the app doing?

There's really no such thing as a "printer DLL". Printers have drivers. Those
drivers can range in size from one single small SYS file up to huge bloatware
that consists of not only a SYS file but many EXE, DLL, INI and other files.
The Lexmark all-in-ones are notorious for polluting your system with tons of
crapware files, many of which can NOT be uninstalled through the normal
method.
What does a printer DLL do? Do simpler apps, like
Notepad, load printer DLLs too? Do all printers have DLLs associated
with them?

Again, there's no such thing as a "printer DLL" and neither Notepad nor Word
has the ability to load one. Typically a program that wants to print something
acquires a "device context" for a printer and then creates a document and then
fills individual pages of that document with text, graphics, and images. The
settings that define this device context like paper size, margin size,
resolution, are set up by the user through the Print Properties window. You
might have noticed that no matter what program you print from, the Print
Properties window for your printer always looks the same even though the Page
Setup window is different. The Print Properties window is generated by your
printer driver, while the Page Setup window is generated by your program. This
is why the Page Setup window in Word is much more complicated than the one in
Notepad while the Print Properties window is identical in both.

There are exceptions to this rule however. Canon's "Easy Photo Print" is a
good example of a program that does NOT let you access the Print Properties
window but instead controls the printer settings all by itself. This is a big
no-no from a Windows application design point of view, as applications should
never access the private part of the DEVMODE structure except for loading &
saving it (which very few programs do, with the notable exception of Qimage).

--Tom.
 
zakezuke said:
<Humor - your question has already been answered>

DLL files come in two flavors. Those who hang out resident in memory
and those that are are loaded as needed. What they do? The ones that
stay resident in memory flood your physical memory making sure that
programs, things you actually are using, have to swap to disk ruining
your efficency, and ones that are loaded dynamicly cause conflicts and
result in a crash.

That's what they do... fill up your ram and crash your computer. They
do that very well.

what machine are you running. I have yet to have these problems.....

Maybe you should get a pro to look at your machine!!
 
what machine are you running. I have yet to have these problems.....

Maybe you should get a pro to look at your machine!!

You really should seek professional attention for that broken funnybone.
 
R. McCarty said:
Appreciate the info, I guess it show my age. At least I didn't refer
to them as Subroutines.

DLL = Dynamic Load Library. A DLL is indeed a collection of
subroutines, callable from any Windows program. They are used for all
kinds of functionality. Core Windows functions like creating windows,
menus, minimizing, maximizing, allocating and freeing memory,
thousands more are packaged in system DLLs, and *all* windows programs
call them.

A driver is a special type of DLL, its functions interface between the
way that the Windows OS sees and operates a particular type of
hardware and one manufacturers implementation of that hardware.

I'm not exactly sure what a "printer DLL" would be. My best guess
would be a driver for a particular printer. In that case it would be
for the operating system, not for a particular application.
 
Tom said:
There are exceptions to this rule however. Canon's "Easy Photo Print" is a
good example of a program that does NOT let you access the Print Properties
window but instead controls the printer settings all by itself. This is a
big
no-no from a Windows application design point of view, as applications
should
never access the private part of the DEVMODE structure except for loading &
saving it (which very few programs do, with the notable exception of
Qimage).

Given that Easy Photo Print only works with Canon drivers (it'll refuse to
execute without a canon driver installed on your system), I think one can
reasonably argue that it's OK for a Canon application to play around with a
Canon DEVMODE structure.
 
Given that Easy Photo Print only works with Canon drivers (it'll refuse to
execute without a canon driver installed on your system), I think one can
reasonably argue that it's OK for a Canon application to play around
with a Canon DEVMODE structure.

But it's a pain... seriously a pain. For example when talking the
multi-funcational printers (mp750/mp760) they offer software to access
each of the functions. If you want to print multiable copies... it
gets processed though EZ Photo print... which does not permit you to
select the FAX device... though it may if you have a mp780 the only
unit in current production with a faxmodem onboard. Their method not
only contrary to the microsoft design which is actually rather nice in
this regard, but makes it so you can't as a user say "three" copies
please... but rather call another application all together. Very
sloppy and also results in no direct fax support unless the driver says
"i'm a canon use me".
 
You really should seek professional attention for that broken funnybone.

Or get a pro to look at his machine and figure out why it's not
operating properly. That blue screen of death is a sign of *Microsoft
Quality*.

Microsoft - "Where the hell did my document go today?!?! ahhh... blue"
 
DLL = Dynamic Load Library.

Dynamically Linked Library. The library routines are linked to the rest of
the application when the executable is run, rather than when the
application is compiled.
...*all* windows programs call them.

Unless all the required code was linked during compilation into a single
EXE file.

Jon.
 
I have found a way round that limitation in the mp750/ mp 780

1. Install the software drivers for the appropriate printer.
2. Download and install ScanGearToolboxCSv223.exe. When installing do
not over write the drivers you had previously installed.

You can now print to another printer say a virtual printer such as
fineprint or pdfactory.

There is a problem in that the printer tab in the program does no allow
me to choose the dpi it is a simple good, better best choice of
quality. Other tabs allow dpi but require a program to link to and
printers are not linkable as far as I know. Anyone have a work around?

Robin
 
Back
Top