
Explore dynamic link libraries in Windows programming with C and C++, learn the basics of compilation, building, and linking for apps and DLLs, and understand load-time, runtime, and delay loading.
Explore the four memory sections of a process—text, data, stack, and heap—and how DLLs map into the same address space with separate stacks and heaps.
Basic Information (like why to use, what are the advantages of using DLLs etc) has been discussed
Explained about the implicit and Explicit Load time linking
Learn to create a Visual Studio 2019 dll from scratch, adding header and source files, exporting symbols, and building a distributable with include, bin, and lib.
Learn as how the DLL from a vendor can be used by a developer to use the API exported.
In this lecture, you get an understanding about the Load time linking and how you can stop it in case you want to call the API at run time.
Learn how to load a dll at runtime, set the dll path, and obtain and call a function address using GetProcAddress and a function pointer.
Demonstrate creating a dynamic link library in C++ with a DLL main function, handling process and thread attach/detach events, exporting functions, and testing via a sample app.
Explore how delay loading of dynamic link libraries reduces app load times, handles implicit loading, and improves version compatibility by loading DLLs only when functions are called.
Discover how to delay load a dll in Windows C/C++, including configuring header and lib paths via the path environment variable and delaying and unloading the dll after use.
Learn how function forwarders alias exported names to real implementations, inspect import and export sections with dumpbin, and forward calls via linker pragmas to rtl allocate heap.
Explore dll redirection in Windows, and learn to load dependent dlls from the application's local folder using a dot local file to prevent overwrites.
Conclude this course by inviting feedback and ratings, contact the instructor for suggestions, and announce the next course in Python.
In this course, you will learn about Dynamic Linking Concepts. What are the DLLs and how they are loaded into memory and how they are used by the applications in C/C++!!
In this course, you will learn about the 3 types of dynamic linking implementations. They are given as below:
The Load Time Linking which is the most expensive in terms of the application startup.
The Run time linking which is less expensive compared to load time as it's done on need basis. The use of APIs and calling the functions inside the DLL has been explained in this course in detail.
The Delay Loading DLL: Which is similar to load time linking but the DLL is not loaded actually in the process address space till one of the exported functions get called from your client applications.
The Demo of each of the concept is available with important study material which is downloadable!!
After completing this course, you will be able to :
Explain the difference between an application and a DLL
Develop and distribute the APIs written by you (specific to some domain expertise like Data Structures/Stock Market/Banking etc)
Develop the application using the DLLs created by you or provided by some other vendor.