I'm currently using 4.0.21 and we are upgrading to Delphi 10.4
In this process I noticed that during the building of our apache shared library I encounter a
"Binary not found" warning from madExcept.
I tried to debug that and ran the madExcept wizzard in a second Delphi IDE so I can debug into that...
Story short the line
{$ifdef d2005}
binary := IOTAProject(FPrj).ProjectOptions.GetTargetName;
{$endif}
actually returns the wrong binary file name.
You need to know that we add the following compiler directives to the main project file
{$E so} // change suffix from dll to so
{$LIBPREFIX 'mod_'}
to be more "compatible" with the stanard apache name convention.
Here is a stub code that shows that problem:
Code: Select all
library Project1;
uses
madExcept,
System.SysUtils,
System.Classes;
{$R *.res}
{$E so} // change suffix from dll to so
{$LIBPREFIX 'mod_'}
function Test12(var x : integer) : boolean;
begin
inc(x);
Result := x > 0;
end;
exports
Test12;
begin
end.
I guess it's a Delphi 10.4 problem since the project is not updated the same way as Delphi2010 did - the project name in the project
overview actually changed to the desired filename wheras in delphi 10.4 this stays as project1.dll instead of mod_project1.so.
But is there a solution for that in Delphi10.4 or can I change the mad except wizzard's code in such a way that it works?
kind regards
Mike