Knowledgebase: EurekaLog V7
7.x: Unexpected "The program is compiled with EurekaLog 7 trial version"
Posted by Aleksandr Alekseev on 17 July 2012 23:27

Problem:

I'm trying/evaluating trial, but I get this message for my specific application:

---------------------------
Error.
---------------------------
The "MyApplication.exe" program is compiled with EurekaLog 7.8.0.0 TRIAL version.

 

However it appears that you forgot to configure EurekaLog for your project.

Please, use "Project" / "EurekaLog options" IDE menu item to enable and configure EurekaLog.

See: https://www.eurekalog.com/tutorials_delphi.php

 

(Note: only full EurekaLog version allows using EurekaLog units without activating EurekaLog).
---------------------------
OK 
---------------------------

Reason:

Normally the message about using EurekaLog Trial edition appears when your application is expired. This happens after 30 days since compilation of the application. However, if compilation date can not be retrieved - then application is also considered expired. 

In other words, if you see this message immediately after compilation - then this means that EurekaLog was not run to post-process your project. This can be due to some kind of installation problem or project configuration problem:

  1. A very common reason for this issue is dropping TEurekaLogEvents components on the form without actually configuring EurekaLog for your project;
  2. One of another common reasons for this is disabling EurekaLog per specific build configuration (say, 'Release'), but not removing EurekaLog's units from application. You can disable EurekaLog for build configuration by removing EUREKALOG conditional symbol from configuration. EurekaLog is enabled for all build configurations by default (once you configure it for your project), so this can happen only when you change your settings manually. See below for diagnostic;
  3. Another possible issue is mixing files from different EurekaLog versions. If EurekaLog code do not match injected EurekaLog's data - then EurekaLog's data are considered to be unknown version and will not be loaded. Thus, compilation data will not be retrieved and your executable will be "expired". See below for diagnostic;
  4. Finally, check that your .dpr file does not have any IFDEF that modify project's type (e.g. program/library/package) or hide/duplicate uses clause. EurekaLog uses a very simple source code parser, which is unable to follow conditional defines. Therefore, EurekaLog may not be able to detect output file, because file's extension comes from project's type;
  5. This message could also appear if you are trying to disable EurekaLog in your application. For example, you have disabled EurekaLog in the application, but some of your units still contain one of EurekaLog's units in uses clause.

Solution:

  1. If you are trying to enable EurekaLog in your project:
    1. If you dropped TEurekaLogEvents component on your form, but did not configure EurekaLog via "Project" / "EurekaLog Options..." IDE menu command - do it now. Please, see this guide on using EurekaLog or watch video tutorial.
    2. You can check output from EurekaLog. Use "View" / "Messages" IDE command to open build log (older Delphi/C++ Builder IDEs do not have such command; introduce non-used local variable to get "hint" from compiler about unused variable; EurekaLog's messages will appear in the same window). Build your project and watch messages from EurekaLog. A sample output of normal compilation may look like this.
    3. For installation issues - please see this guide.
    4. For post-processing issues - please see this guide.
    5. You can check version of EurekaLog's code and data by using Module Informer (PE Analyzer) tool (which is available both in EurekaLog and EurekaLog Tools Pack).
    6. Check-list:
  2. If you are trying to disable EurekaLog in your project:
    1. Go to IDE's "Project" / "EurekaLog options" menu item and click on the "Reset" button to remove EurekaLog from the project;
    2. Simply remove/comment all references to EurekaLog's units from your code. You can use constructs like {$IFDEF EUREKALOG}uses EBase;{$ENDIF} to avoid changing your source code each time you enable or disable EurekaLog;
    3. In particular, if you have dropped TEurekaLogEvents component on your form and then have removed it - make sure to manually remove EComponent unit from uses clause, because IDE will not automatically remove this unit when you delete the component;
    4. Make sure that the error message is actually about your project. Ensure it is not about DLL/package that is being used by your project.
    5. If you are unable to find which of your units references EurekaLog - do the following:
      1. Close your IDE;
      2. Go to "Start" / "Programs" / "EurekaLog" / "Manage EurekaLog in IDEs";
      3. Click on your IDE in the shown dialog;
      4. Click on "Unregister EurekaLog";
      5. Run your IDE;
      6. Open your project;
      7. Use "Project" / "Build Project" (not "Compile", not "Make");
      8. If any of your units contained referenced to EurekaLog's units - IDE/compiler will complain, so you can easily spot this and remove;
      9. Once you have fixed the problem - close your IDE and return to step 3;
      10. Click on "Register EurekaLog (recommended)".

See also:


Help Desk Software by Kayako Resolve