User`s guide
160  Creating FPM Application Licenses 
 char msg[100]; 
      sprintf(msg, "FPM license key is invalid: file 
\"%s\"\n", taskCallBlock.pFilePath); 
 taskCallBlock.pGeneric = (void*)msg; 
 LICMGR_TaskCall_LogLicenseError(&taskCallBlock); 
 } 
 }else 
 { 
 char msg[100]; 
      sprintf(msg, "FPM license not found: file \"%s\"\n", 
taskCallBlock.pFilePath); 
 taskCallBlock.pGeneric = (void*)msg; 
 LICMGR_TaskCall_LogLicenseError(&taskCallBlock); 
 }  
  // free the license data, if any 
 LICMGR_TaskCall_FreeLicenseData(&taskCallBlock); 
}
Step 5: Implementing the License Validation Call Mechanism 
After you have written your license validation algorithm, you need to implement some mechanism in 
your FPM application that results in the license validation routine being called. This can be done in a 
variety of ways using the pre-defined code and routines in your FPM application; however, you are 
solely responsible for designing and implementing this mechanism. 
Step 6: Compiling the Licensed FPM Application 
Once you have created the license validation call mechanism, you can compile your licensed FPM 
application. To compile your FPM, click File and then click Save. If your code has any errors, they 
will be listed with any warnings in the Problems view at the bottom of the document window. You 
can click on the errors and warnings listed in this view to debug your FPM. If the build is not 
performed, click Project and then click Build Project. You can then click Project and select Build 
Automatically so that your FPM applications are built automatically when you save them. 
Building the Release Version of a Licensed FPM Application 
After you enable license validation in your FPM application and compile it, you can build the release 
version of your FPM application that you will make available to customers. Building the release 
version entails removing the internal-only symbols from your FPM executable module (.app 
extension). Stripping the internal-only symbols greatly enhances the security of your licensing 
scheme, as it obscures the location of the routines and data in your code. 
To remove the internal-only symbols from your FPM executable module, follow these steps: 
1.  Open a Command Prompt window. 
2.  At the command prompt, change the directory to the path of your FPM executable module. 
 For example, you type the following (without the break): 
cd C:\LonWorks\iLON\Development\eclipse\workspace.fpm\ 
9000010000000000[3].UFPTHVACController/Release 
3.  Use the set path command to set the path to the directory containing the GNU strip utility 
(strip.exe). This utility is located in the 
C:\LonWorks\iLON\Development\eclipse\plugins\com.echelon 
.eclipse.ilon100.fpm_0.9.0\compiler\3.3.2-vxworks-6.2\x86-win32\i586-wrs-vxworks\bin 
directory. 
For example, you type the following (without the breaks): 










