Skip to main content

Dialog: Project Settings: Library development

Symbol: _cds_icon_library_manager.png

Function: Configuration of the parameters for the Check all Pool Objects command. This command is used especially for libraries in order to check that all objects can be compiled correctly.

Call: ProjectProject Settings, Library development category

Requirement: A project is open.

During the compile process of an application, only the functions blocks/programs/functions which are actually used directly or indirectly by the application code are compiled. However, the Check all Pool Objects command also checks the function blocks/programs/functions which are not used. If possible, all execution paths in the code should be taken into account.

Table 138. Compiler Defines to Use

Scan

Scans all function blocks/programs/functions of the library and enters the compiler defines found as a comma-separated list in the Compiler Defines to Use overview.

For cascading {IF defined(...)}-{ELSIF defined(...)} statements, only the define at {IF} is taken into account.



Table 139. Check all Pool Objects

Pointer size to use

If you save a POINTER variable in a DWORD variable in the library, then this library can be compiled only for 32-bit devices.

To detect and avoid this problem, you can specify the pointer size which should be specified for the Check all Pool Objects command. You can select the following values:

  • 32 Bit

  • 64 Bit

  • 32 and 64 Bit

The following example shows how to use the Check all Pool Objects command to detect invalid assignments for the 64-bit pointer size:

FUNCTION F : INT
VAR
               
ptr : POINTER TO BYTE;
               
ptrSave : DWORD;
END_VAR
ptrSave := ptr;

This assignment results in the error C0032: Type 'POINTER TO BYTE' can not be converted to type 'DWORD'.

Use the following declaration for ptrSave in order to avoid this error:

ptrSave : __XWORD;


For more information, see: Check all Pool Objects