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