07 December, 2023

Beware of secondary exceptions

We were contacted by a client who complained that EurekaLog was generating an error report in the wrong place. In fact, the client had an expected exception that he wanted to hide by showing a simple message instead. The client kindly showed his code:
try
  Query.Delete; // - an exception is raised here
except
  Query.Transaction.Rollback;
  ShowMessage('Sorry, could not delete the report');
  Exit;
end;
What's happening? Does EurekaLog really ignore user code?

17 November, 2023

Black Friday and Cyber Monday Sale

We are pleased to announce Black Friday and Cyber Monday 30% discount on any of our EurekaLog products using the coupon code found below.

The sale starts on Black Friday (November, 24) and ends at the end of Cyber Monday (November, 27).

Enter this code when paying for the item on our web site:

BFCM2023



Existing customers with valid or expired licenses can log in and purchase upgrades, new licenses and extensions here:

https://www.eurekalog.com/login.php

Use the login credentials we sent you at purchase time.



New customers (without existing licenses) can use the discount code here:

https://www.eurekalog.com/buy.php

10 November, 2023

EurekaLog 7.12 is out

We are pleased to announce the availability of the new 7.12 version.

06 September, 2023

Creating an API (contract) for your own DLL

Or: don't create your own DLLs without reading this article!


This article is not about EurekaLog, but about writing your own DLLs in general. This article is based on questions on the forums: "How do I return a string from a DLL?", "How do I pass and return an array of records?", "How do I pass a form to a DLL?".

So that you do not spend half your life figuring it out - in this article I will bring everything on a silver platter.

Important note: the article must be read sequentially. Code examples are given only as examples: the code of examples is added with new details at each step of the article. For example, at the very beginning of the article there is no error handling, "classic" methods are used (such as using GetLastError, the sdtcall convention, etc.), which are replaced by more adequate ones in the course of the article. This is done for the reason that "new" ("unusual") designs do not raise questions. Otherwise, with each example, one would have to insert a note like: "this is discussed in that paragraph below, but that - in this one here." In any case, at the end of the article there is a link to the sample code written by taking into account everything said in the article. You can just grab it and use it. And the article explains why it is created the way it is. If you are not interested in "why" - scroll to the end to the conclusion and find a link to download the example.

12 August, 2023

What can you do with the "Assember" tab in bug reports? Is it even useful?

We were contacted by a customer that claimed that his application worked fine until he added EurekaLog to it. Specifically, his application starts to raise an EAccessViolation exception with the following message:
Access violation at address 03DB472F in module 'Sample.exe'. Read of address 5653E4CC

26 July, 2023

Does EurekaLog support CLang/LLVM/64-bit?

Short Answer

Yes, EurekaLog supports CLang and LLVM in both 32 and 64 bits - with some limitations. Exception is the very recent "Windows 64-bit (Modern)" platform, which was added into the RAD Studio 12 Athens since the major 12.1 update. The "Windows 64-bit (Modern)" platform is not supported yet.

03 April, 2023

Many libraries/components are not tested for memory bugs

We were contacted by a customer, who claimed that EurekaLog causes Access Violation in a simple sample demo application.

Specifically, the application runs fine when compiled without EurekaLog and produces the expected results. But application crashes with "Access violation at address 00410759 in module 'DemoApp.exe'. Read of address 83EC8B59" when compiled with EurekaLog.