SORU
13 Temmuz 2012, Cuma


Jenerik kullanırken derleyici hata ve ileri Delphi XE2 beyanname

Delphi 2010, TEKNOLOJİ için daha sonra geçirilmiş bir proje başladım ve XE2 göç etmeye çalışıyorum şimdi. XE2 içinde derleme sonra (Update 4 Düzeltme 1), birim testleri AV başarısız başladı. Bazı hata ayıklama sonra, aşağıdaki kodu düzgün derlenmiş değil belli oldu:

program ForwardDeclaration;

{$APPTYPE CONSOLE}

uses
    System.SysUtils;

type
    TEntityBase = class(TObject)
    protected
        FModel: Integer;
    public
        constructor Create(const AModel: Integer);
    end;

    TEntity<TKey> = class(TEntityBase)
    end;

    TMyEntity2 = class;

    TMyEntity1 = class(TEntity<Integer>)
        FData: Integer;
    end;

    TMyEntity2 = class(TMyEntity1)
    end;

constructor TEntityBase.Create(const AModel: Integer);
begin
    inherited Create;
    FModel := AModel;
end;

var
    MyEntity: TMyEntity1;
begin
    try
        Writeln(TEntityBase.ClassName, ': ', TEntityBase.InstanceSize, ' bytes');
        Writeln(TMyEntity1.ClassName, ': ', TMyEntity1.InstanceSize, ' bytes');
        MyEntity := TMyEntity1.Create(100);
        Assert(MyEntity.FData = 0);
    except
        on E: Exception do Writeln(E.ClassName, ': ', E.Message);
    end;
end.

Program çıktıları:

TEntityBase: 12 bytes
TMyEntity1: 12 bytes <-- Must be 16 bytes!
EAssertionFailed: Assertion failure (ForwardDeclaration.dpr, line 41)

Derleyici seçenekleri ayarlama sorunu çözmek mümkün mü?

Bu sorun, başka biri de tekrarlar mı?

S. S. QC107110

CEVAP
11 EYLÜL 2013, ÇARŞAMBA


Derleyici seçenekleri ayarlama sorunu çözmek mümkün mü?

Hayırolamaz ayarlama hata düzeltme, bir çok özel derleyici hata.

Bu sorun, başka biri de tekrarlar mı? biri bana söyleyebilir []

Kodu yeniden yapabilirsiniz, ama sadece XE2 update 4.

XE3 bunu kontrol etmek mümkün (Bu sürüm yok) değil. XE4 (yorum) başı olarak düzeltildi.

İş kodu için tek yol vardır:

bir. gereksiz ileri bildirimi kaldırın.
b. Delphi farklı bir sürümünü kullanın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • megablueblaster

    megablueblas

    23 HAZİRAN 2006
  • Trevor Eckhart

    Trevor Eckha

    19 Aralık 2009
  • TWiT Netcast Network

    TWiT Netcast

    27 EKİM 2005