Und du startest die auf den beiden Wegen erzeugten Exe jeweils komplett identisch und kannst reproduzieren, dass die eine den Fehler ohne sichtbare Konsole wirft und die andere die Ausgaben in einer Konsole anzeigt?
Ich habe mal ChatGPT gebeten, eine Routine zu erstellen, die prüft, ob eine Konsole da ist und diese ansonsten erstellt. Testen kann ich das am Handy gerade nicht.
Delphi-Quellcode:
program ConsoleCheck;
{$APPTYPE CONSOLE}
uses
Windows, SysUtils;
procedure EnsureConsole;
begin
// Prüfen, ob eine Konsole vorhanden ist:
if GetConsoleWindow = 0 then
begin
if AllocConsole then
begin
// Standard-Handles neu zuordnen
AssignFile(Input, 'CONIN$');
Reset(Input);
AssignFile(Output, 'CONOUT$');
Rewrite(Output);
AssignFile(ErrOutput, 'CONOUT$');
Rewrite(ErrOutput);
end
else
RaiseLastOSError;
end;
end;
begin
EnsureConsole;
Writeln('Hallo, Welt! Die Konsole existiert.');
Readln;
end.
Damit sollte das zumindest umgehbar sein.
Hier kommen wir glaube ich am ehesten weiter, wenn du das Projekt so weit abspecken kannst, ohne dass der Fehler verschwindet, dass du es jemandem zeigen kannst (ggf. auch per PN).