| **Navigation:**  [[introduction.htm|Language Reference]] > 2 - Program Source Code Format > Prototype Attributes >====== DLL (set procedure defined externally in .DLL) ====== | [[derived prevent function overloading .htm|{{btn_prev_n.gif|Previous page}}]][[introduction.htm|{{btn_home_n.gif|Return to chapter overview}}]][[name set prototype s external name .htm|{{btn_next_n.gif|Next page}}]] | | || ** ** **DLL( **[** **//flag//** **]** )** {{blk2blue.jpg|blk2blue.jpg}} | **DLL** | Declares a PROCEDURE defined externally in a .DLL. | | //flag// | A numeric constant, equate, or Project system define which specifies the attribute as active or not. If the //flag// is zero, the attribute is not active, just as if it were not present. If the //flag// is any value other than zero, the attribute is active. Uniquely, it may be an undefined label, in which case the attribute is active. | The **DLL** attribute specifies that the PROCEDURE on whose prototype it is placed is defined in a .DLL. The DLL attribute is required for 32-bit applications because .DLLs are relocatable in a 32-bit flat address space, which requires one extra dereference by the compiler to address the procedure. **Example:** ** MAP** **  MODULE('STDFuncs.DLL')            !A standard functions .DLL** **Func50 PROCEDURE(SREAL),REAL,PASCAL,****DLL****(dll_mode) !** **  END** ** END** **See Also:** [[external set defined externally .htm|EXTERNAL]]