AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Keine Zulässige Win32-Anwendung seit Delphi11
Thema durchsuchen
Ansicht
Themen-Optionen

Keine Zulässige Win32-Anwendung seit Delphi11

Ein Thema von QuickAndDirty · begonnen am 7. Feb 2022 · letzter Beitrag vom 7. Feb 2022
Antwort Antwort
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#1

Keine Zulässige Win32-Anwendung seit Delphi11

  Alt 7. Feb 2022, 10:34
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
https://en.delphipraxis.net/topic/55...ibility-tweak/

Wie hat der das rausbekommen? Ich weiß auch noch nicht ob es wirklich hilft.... melde mich wenn es funzt
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty ( 7. Feb 2022 um 10:41 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Keine Zulässige Win32-Anwendung seit Delphi11

  Alt 7. Feb 2022, 10:41
Workaround hier:
https://quality.embarcadero.com/browse/RSP-35375
  Mit Zitat antworten Zitat
lxo

Registriert seit: 30. Nov 2017
288 Beiträge
 
Delphi 12 Athens
 
#3

AW: Keine Zulässige Win32-Anwendung seit Delphi11

  Alt 7. Feb 2022, 10:49
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:

https://quality.embarcadero.com/browse/RSP-35375
https://docwiki.embarcadero.com/RADS...SETPEOSVERSION
https://docwiki.embarcadero.com/RADS...ESUBSYSVERSION
https://docs.microsoft.com/de-de/win...ectedfrom=MSDN
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#4

AW: Keine Zulässige Win32-Anwendung seit Delphi11

  Alt 7. Feb 2022, 11:16
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}
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#5

AW: Keine Zulässige Win32-Anwendung seit Delphi11

  Alt 7. Feb 2022, 11:30
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.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz