Einzelnen Beitrag anzeigen

mr.warft

Registriert seit: 7. Mär 2008
6 Beiträge
 
#1

Interner Fehler C1537 - result Fehler???

  Alt 7. Mär 2008, 16:29
Hallo Forum,

ich bin neu hier und beschäftige mich studienbedingt mit Delphi bzw. Object Pascal.

Ich habe ein Problem und komme einfach nicht dahinter was es sein könnte. Ich habe den Fehler schon eingegrenzt...zumindest denke ich das es daran liegt.

Delphi-Quellcode:
function TBigInteger.copy:TBigInteger;
var
   r : PBigInteger;
begin
     //r.BigInteger(BigIntegerToStr());
   new(r,BigInteger(BigIntegerToStr()));
   result := r^;
end;
An dieser Stelle wird mir ein interner Fehler C1537 gemeldet und ich habe schon 2Tage gegoogelt aber nichts darüber gefunden. Was ist der interne Fehler und was löst es aus bzw. wie kann ich diesen Fehler beseitigen.

Der Aufruf hin zu dieser Funktion erfolgt so:

Delphi-Quellcode:
function xyz (const a: TBigInteger; const b : TBigInteger):TBigInteger;
var
   n,m: LongInt;

   xh,xl,yh,yl: TBigInteger;
   t3,t1,t2: TBigInteger;
   z1,z2,z3,z4,z5: TBigInteger;
begin
   inc(c);

   m := Max(a.bitLength(),b.bitLength());
   Debug('max: '+IntToStr(m));

   if (m <= 2) then
   begin
      result := a.multr(b);
   end else
   
   begin
   Debug('Durchgang: '+IntToStr(c));
   Debug('----------------');
   n := (m div 2);


   (****************** X ***********************)
   //BigInteger xH = x.shiftRight (n);
   xh := a.shrR(n);
und in shrR sieht der Code dann so aus:

Delphi-Quellcode:
function TBigInteger.shrR(n: Integer): TBigInteger;
var
   tmp: TBigInteger;
begin
   tmp := copy();
   tmp.shiftright(n);
   result := tmp.copy();
end;
Wo kann hier der Fehler sein?

Als Info: Unter FreePascal funktioniert dieser Code ohne Probleme. Ich benutze Borland Delphi 2005.

Hoffe das ihr mir helfen könnt.
  Mit Zitat antworten Zitat