Name
Library Keyword
Syntax
libraryName;Declarations...Block.
Description
A library project defines a dynamically linked library (DLL). When Windows loads the library, Delphi first executes the initialization sections of all units. Then Delphi executes the library’s block.
Tips and Tricks
If your library passes strings, dynamic arrays, or
Variants as arguments or return values between modules (the application or other libraries), you must useShareMemas the first unit. See Chapter 2 for details.If your library allocates memory (such as objects) freed by the application or another library, or if your library frees objects allocated by a different module, you must use the
ShareMemunit.If you pass object references as arguments or return values between modules, be aware that the
isandasoperators will not work correctly. Each module (program or library) keeps its own copy of every class’s RTTI. Theisandasoperators rely on RTTI to test class types, so different RTTI implies different types. If this is a problem, use packages instead of libraries. Chapter 3 explains RTTI in detail.
Example
library FontNames; // Delphi lets you extend the IDE by loading packages or DLLs // that use the Open Tools API. This rather trivial IDE extension // must be compiled with the VCL50 runtime package. To install the // extension, add a registry value under // HKEY_CURRENT_USER\Software\Borland\Delphi\5.0\Experts // The entry name is a unique string, and the value is the path // of this DLL. ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access