AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Warnung vor WinMD :(

Ein Thema von himitsu · begonnen am 16. Jan 2024 · letzter Beitrag vom 4. Feb 2024
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#1

Warnung vor WinMD :(

  Alt 16. Jan 2024, 19:06
Delphi-Version: 12 Athens
Seit 'ner Weile befindet sich ja ein eigentlich nettes Projekt im GetIt.
siehe GetIt "Windows API from WinMD"

Microsoft stellt Metadaten (API-Definionen) in einem maschienenlesbarem Format bereit
und Embarcadero versucht daraus automatisch die Delphi-Implementationen zu übersetzen/generieren.
https://learn.microsoft.com/de-de/uw...ef/winmd-files

Viele WinAPI fehlen ja im Delphi, Andere sind extrem veraltet und dann überall hier und da auch mal Übersetungsfehler. (die leider zu oft nicht behoben werden)

Nur leider ist es aktuell nicht wirklich nutzbar,
vor allem da z.B. an extrem vielen Stellen Char anstatt AnsiChar verwendet wird, wo's SDK oder des MSDN learn.microsoft.com etwas von BYTE-Arrays reden.
Oder Integer bzw. Int64, wo es eigentlich ein NativeInt sein sollte, also vor allem bei compilerabgängigen Definitionen.

https://quality.embarcadero.com/browse/RSP-44096
$2B or not $2B

Geändert von himitsu (16. Jan 2024 um 19:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Warnung vor WinMD :(

  Alt 4. Feb 2024, 12:14
Ich würde gern seit Tagen den schwachsinnigsten Bug melden, aber geht nicht.
Sobald die Windows.Foundation eingebunden ist, geht fast sofort garnichts mehr.

Hat überhaupt irgendjemand auch nur eine Sekunde mal reingesehn, was sie da verbockt haben?


Delphi-Quellcode:
{$REGION 'BUGFIX'}

// C:\Users\%username%\Documents\Embarcadero\Studio\23.0\CatalogRepository\WindowsAPIfromWinMD-1.0\Windows.Foundation.pas
//
// TRUE = $1 {1};
// FALSE = $0 {0};
//
// BOOL = Integer;

type
  BOOL = Winapi.Windows.BOOL;

const
  True = System.True;
  False = System.False;

{$ENDREGION}
Leider klappt das mit dem Zurückändern des BOOL natürlich nicht, da verwendete Funktionen in deren Units natürlich bereits mit dem falschen Typ deklariert wurden. (also muß direkt dort verändert werden)
$2B or not $2B

Geändert von himitsu ( 4. Feb 2024 um 12:21 Uhr)
  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 05:08 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