This section outlines simple guidelines that you can follow to detect a real license, and if you don't find one, detect a trial license.
For example, say you have chosen a trial license as a way of providing your potential customer with demo versions of your software, but you might first want to check whether a real license is also available. (Note that there is no need to check or use a trial license if your end user has already bought a real one.) For this purpose, you can use the following code example to check out a license from a server, and when it is not available, to check out a trial license. If no licenses at all are available, the user will see the "Unable to checkout from trial license:" message, as shown below.
#include <stdio.h> #include <stdlib.h> #include "lmx.h" LMX_HANDLE LmxHandle; void exit_on_error(LMX_STATUS s) { if (s != LMX_SUCCESS) { if (LmxHandle != NULL) { fprintf(stderr, "%s\n", LMX_GetErrorMessage(LmxHandle)); LMX_Free(LmxHandle); // Release memory allocated by LM-X } else { fprintf(stderr, "%s\n", LMX_GetErrorMessageSimple(s)); } fflush(stderr); exit(1); } } int main() { exit_on_error(LMX_Init(&LmxHandle)); if (LMX_Checkout(LmxHandle, "f2", 1, 0, 1) != LMX_SUCCESS) { printf("Unable to checkout from server license:\n"); printf("%s\n", LMX_GetErrorMessage(LmxHandle)); // If we cannot checkout a license from the server, we set the trial option and try to checkout a trial license LMX_SetOption(LmxHandle, LMX_OPT_TRIAL_USES, (LMX_OPTION) 2); if (LMX_Checkout(LmxHandle, "f2", 1, 0, 1) != LMX_SUCCESS) { printf("Unable to checkout from trial license:\n"); printf("%s\n", LMX_GetErrorMessage(LmxHandle)); LMX_Free(LmxHandle); return 1; } } LMX_Free(LmxHandle); return 0; }