![]() |
Keine Zulässige Win32-Anwendung seit Delphi11
Hallo
mit Delphi 10.4 konnte ich noch alle VCLServices und VCL Anwendungen auf Windows XP/ Windows Server2003 laufen lassen. Jetzt seit Delphi 11 meldet Windows beim Start von VCL und Consolen Anwendungen "Keine Zulässige win-32 Anwendung" Wohlgemerkt das meldet delphi bei einer reinen Consolen Anwendung mit einem Writeln einem Readln eingebunden. Delphi 11 kann praktisch nicht mal ne leere Anwendung hervorbringen die auf Windows XP läuft. Was muss ich mindestens tun um Delphi 11 Anwendungen auf Win XP lauffähig zu bekommen? Patch ideen?
Delphi-Quellcode:
program TEST;
{$APPTYPE CONSOLE} var rHelper:String; begin Writeln('TEST'); Readln(rHelper); end. EDIT: Anscheinend hilft besseres googlefoo ![]() Wie hat der das rausbekommen? Ich weiß auch noch nicht ob es wirklich hilft.... melde mich wenn es funzt |
AW: Keine Zulässige Win32-Anwendung seit Delphi11
|
AW: Keine Zulässige Win32-Anwendung seit Delphi11
Hallo das ist mir auch aufgefallen und da habe ich bereits etwas recherchiert, hier meine Erkenntnisse dazu:
Mit Delphi 11.0 Alexandria werden Windows Betriebssysteme älter als Windows 7 (SP1) nicht mehr unterstützt. Dadurch können Anwendungen die mit Delphi 11.0 Alexandria erzeugt wurden auf Betriebssystemen wie z.B. Windows XP oder Windows Server 2003 nicht mehr ausgeführt werden. Fehlermeldung: „***.exe ist keine zulässige Win32-Anwendung.“ Es gibt eine Möglichkeit um zuzulassen, dass die Anwendung trotzdem auf älteren Betriebssystemen ausgeführt werden kann. Natürlich ist damit nicht versichert, dass die Anwendung zuverlässig auf einem System unter Windows 7 (SP1) läuft. Wenn man im Projekt folgende Direktiven hinzufügt, kann die Anwendung auch mit Windows 2000 oder höher gestartet werden.
Delphi-Quellcode:
program Project1;
{$SETPEOSVERSION 5.0} // <- Add {$SETPESUBSYSVERSION 5.0} // <- Add uses ... Weitere Infos dazu siehe: ![]() ![]() ![]() ![]() |
AW: Keine Zulässige Win32-Anwendung seit Delphi11
Auf den ersten Blick ist es auch nicht notwendig Threading zu fixen, da Emba das schon berücksichtigt.
Delphi-Quellcode:
class function TThread.GetTickCount: Cardinal;
{$IF Defined(MSWINDOWS)} begin Result := Winapi.Windows.GetTickCount; end; {$ELSE} begin Result := Cardinal(GetTickCount64); end; {$ENDIF} class function TThread.GetTickCount64: UInt64; {$IF Defined(MSWINDOWS)} begin if TOSVersion.Major >= 6 then Result := Winapi.Windows.GetTickCount64 else Result := Winapi.Windows.GetTickCount; end; {$ELSEIF Defined(MACOS)} begin Result := AbsoluteToNanoseconds(mach_absolute_time) div 1000000; end; {$ELSEIF Defined(POSIX)} var res: timespec; begin clock_gettime(CLOCK_MONOTONIC, @res); Result := UInt64(1000 * res.tv_sec + res.tv_nsec div 1000000); end; {$ELSE OTHERPLATFORM} {$MESSAGE Fatal 'Method not implemented for Platform'} {$ENDIF OTHERPLATFORM} |
AW: Keine Zulässige Win32-Anwendung seit Delphi11
System.Threading muss nicht bearbeitet werden
Diese Anwendung , mit Delphi 11 kompiliert, geht auf Windows 10 und Windows XP ohne Fehler .
Delphi-Quellcode:
program IWSConsole;
{$SETPEOSVERSION 5.1} {$SETPESUBSYSVERSION 5.1} {$APPTYPE CONSOLE} uses Winapi.Windows, System.Threading, System.Classes, System.Sysutils; var rHelper:String; ticks:Cardinal; begin try Writeln('TEST1'); ticks := 0; ticks := Winapi.Windows.GetTickCount; Writeln(ticks); Writeln('TEST2'); ticks := 0; ticks := TThread.getTickCount64; Writeln(ticks); Readln(rHelper); except On E:Exception do Begin exitcode := 1; raise Exception.Create(e.Message); End; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz