Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#298

AW: Ordnung muss sein (LaunchBar)

  Alt 20. Aug 2018, 21:23
Zum Fortschritt.
Langsam komme ich weiter, musste meine GDI+ Unit komplett umschreiben und dementsprechend auch alle Funktionen innerhalb meiner Lib.
Es funktioniert einwandfrei mit 32Bit aber 64Bit leider nicht!

Es hat damit zu tun..
bsp. Wenn ich unter 32Bit einer Funktion ein Cardinal übergebe und diese in 64Bit nicht kompatibel ist dann kracht es.
Deshalb muss ich alles umschreiben damit es auf beiden Plattformen funktioniert.

GDIPlus Image war Cardinal ist nun Pointer usw..
Es läuft soweit nur mein Menu noch nicht.. habe da wohl noch ein\zwei Funktionen unter GDI+ die ich noch korrekt umlegen muss.
Das dauert seine zeit.

Kracht immer bei
Delphi-Quellcode:
// Gibt die höhe und weite vom GDIPLUS Image zurück.
procedure TSkinEngine.GetImageSize(Img: Pointer; var imgW, imgH: UINT);
begin
  if Assigned(Img) then
  begin
    GdipCheck(GdipGetImageWidth(Img, imgW));
    GdipCheck(GdipGetImageHeight(Img, imgH));
  end;
end;
Muss aber nichts bedeuten denn die Typen sind korrekt habe sie angepasst.
Irgendwo dazwischen passiert noch was das sich nicht so leicht debuggen lässt.

Test im Anhang werde ich löschen wenn die Final fertig ist inklusive fix für das Menu (GDI+).
Zumindest sollten jetzt deine Icons aus "Program Files" richtig angezeigt werden.
Aber wundere dich nicht die Dateien sind nun um ein 10faches größer.


PS:
Die 32Bit läuft mit den geänderten Typen für 64Bit ohne Probleme schwer den Fehler zu lokalisieren.
Ich finde keine Informationen darüber was bei der GDI+ 64Bit für Typen übergeben werden müssen. grrrrrr..
Es gibt auch keine 64Bit API für GDI+ von Delphi zumindest finde ich keine.

gruss

Geändert von EWeiss (22. Aug 2018 um 04:42 Uhr)
  Mit Zitat antworten Zitat