Course Overview:
This course introduces students to the design, implementation, and use of Dynamic Link Libraries (DLLs) in a Microsoft Windows 32-bit environment. The primary implementation language used is C, with some C++.


Goals:
Provided students meet the prerequisites, at the end of the course they should understand the following concepts:

1. Know the advantages of using DLLs.
2. Know how to link an existing DLL to a C or C++ program.
3. Know when to, and when not to, use a DLL to solve some given problem.
4. Know how to design a DLL.
5. Know how to implement a DLL using either C or C++.
6. Understand the implications multithreaded programs have on DLL design and implementation.
7. Understand the differences between link-time DLL loading and run-time DLL loading.

Who This Course Is Appropriate For:
Programmers and technical managers who need to implement or manage projects using DLLs in a 32-bit Microsoft Windows environment.

Prerequisites:
Students are expected to be fluent in C or C++. They are also expected to know something about the Windows 32-bit API and to understand multithreading as implemented by Microsoft.

Materials:
Each buyer will receive one or both of the following materials, depending on purchase:

Microsoft Windows 32-Bit DLLs – This manuscript was written specifically for teaching. It serves as a useful reference once the course has been completed.
Source Code – An electronic version of all of the source code shown in the text of this course.

Detailed Topics:
The main topics covered are:

- DLL Initialization and Termination
- Public Data in DLLs
- Run-Time Linking
- DLL Function Calling Conventions
- Implementing a C++ Class inside a DLL