Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#29

Re: Hilfe beim Übersetzten von C in Delphi

  Alt 24. Mär 2007, 08:24
1. Aufpassen. Bei Write gibt man das erste Element des Puffers an das man schreiben will, nicht den Puffer selbst. Die Deklaration von Write ist mit "const Buffer" fuer den Parameter was heisst bei der Parameteruebergabe addiert Delphi eine Indirektion, sprich uebergibt die Adresse des Elementes.
Delphi-Quellcode:
if (GL_Add6MaxTag=true) then
begin
  RMIndex:=GetIndexToNextSubString(Buffer,' (Real Money)',BufferLen);
  if (RMIndex>=0) then
  begin
    OutStream.write(Buffer[0], RMIndex);
    OutStream.write(' (6 max)', strlen(' (6 max)')); // Add the 6-max tag.
    OutStream.write(Buffer[RMIndex], BufferLen - RMIndex);
  end
  else
  begin
    OutStream.write(Buffer[0], BufferLen); // If can't find, just write as normal.
  end;
end
else
begin // Write the rest of the buffer.
    OutStream.Write(Buffer[0], BufferLen);
end;
2.
Delphi-Quellcode:
if MBI.RegionSize > BufferLen then
begin
  // Realloziierung des Puffers
  if Buffer <> nil then
    FreeMem(Buffer);
  GetMem(Buffer, MBI.RegionSize);
  BufferLen := MBI.RegionSize;
  // sicherheitshalber den Puffer auf C Leerstring initialisieren
  Buffer[0] := #0;
end;
3. Bei "static unsigned int MinRegionSize=~0;" ist ~ das bitweise not. Die Zahl wird also auf alle Bits 1" gesetzt.
Delphi-Quellcode:
var
  MinRegionSize: Cardinal = not 0;
  // alternativ
  MinRegionSize: Cardinal = $FFFFFFFF;
Fuer den Rest habe ich gerade keine Zeit bei den Einzelheiten. Spaeter.

4. Letzlich nur ein Stringvergleich.
5. Hier geht es um die ParamStr, also die Parameter beim Programmaufruf.
6. var GL_Extention = 'hhf': string; GL_extention := ParamStr(I+1);
7. Das ist ein Thread. Da muss ein Delphi-Threadobjekt her.
8. Das ist das Hauptprogramm. Entspricht dem was du in einem .dpr findest. Es wird etwas angezeigt und dann nur der Thread gestartet der die Arbeit macht. Es ist uebrigens ein DOS-Box-Programm (aka Konsolenprogramm) was wir hier haben.
  Mit Zitat antworten Zitat