Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#1

Variablen nicht NIL 64Bit

  Alt 1. Sep 2018, 09:45
Ja bestimmt nerve ich schon mit dem Kram
Folgendes verhalten.

Delphi-Quellcode:
var
  TempFont: GpFont;
//..
begin
    if Assigned(TempFont) then
    begin
      GdipCheck(GdipDeleteFont(TempFont)); // Lösche das Font Object
      TempFont := nil;
    end;

end;
Mit D2010 und 32Bit Anwendung habe ich hier kein Problem.
Bei 64Bit kracht es weil beim Ausführen der Funktion TempFont anscheinend nicht NIL ist.
Sie wird nicht mit NIL initialisiert sondern irgendeinen imaginären wert.
Das gleiche Problem habe ich auch schon bei anderen Funktionen bemerkt.

Warum ist das so?

Es funktioniert unter 64Bit nur dann wenn ich sie selbst initialisiere.
Delphi-Quellcode:
var
  TempFont: GpFont;
//..
begin
    TempFont := nil;

    if Assigned(TempFont) then
    begin
      GdipCheck(GdipDeleteFont(TempFont)); // Lösche das Font Object
      TempFont := nil;
    end;

end;
In D2010 bekomme ich dann aber eine Warnung.. Variable wird nicht verwendet.
Sehr seltsam dieses Verhalten.
Man sollte wirklich mal einen Thread erstelle Wie Migriert man richtig zu 64Bit
Die Fehler die ich bisher schon gefunden habe sind wirklich kurios bis weilen.

Seltsamerweise tritt dieser Fehler aber nur unter Win10 auf das kommt noch dazu.

gruss

Geändert von EWeiss ( 1. Sep 2018 um 09:50 Uhr)
  Mit Zitat antworten Zitat