AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

C++ zu Delphi funktion umschreiben

Ein Thema von XXcD · begonnen am 5. Okt 2010 · letzter Beitrag vom 5. Okt 2010
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#3

AW: C++ zu Delphi funktion umschreiben

  Alt 5. Okt 2010, 21:17
Du kopierst einfach den gesamten Dateiinhalt in "mem" rein und läßt dann folgendes drüberlaufen
Delphi-Quellcode:
var mem: TByteDynArray;
  title_name: AnsiString
  "sonstiges": Integer;

str := mem[8] or (mem[9] shl 8);
pos := mem[12] or (mem[13] shl 8);
indx := 0;
title_name := '';
while str < Length(mem) do
begin
  if mem[str] = 0 then break;
  if not lstrcmpA(@mem[str], 'TITLE') then
  begin
    SetString(title_name, PAnsiChar(@mem[pos]));
    //title_name := Copy(title_name, 1, 63);
    break;
  end;
  while mem[str] <> 0 do inc(str);
  inc(str);
  inc(pos, mem[28 + indx] or (mem[29 + indx] shl 8));
  inc(indx, 16);
end;

// Ergebnis: title_name
hab auch glaich mal das Unicodeproblemchen der API angepaßt
und über das TByteDynArray wurde auch gleich der fehlende Resourcen-Schutzblock kompensiert (das "mem" im C-Code ist ein Pointer, dessen Speicherfreigabe nicht sichergestellt war).

@Klaus01:
- für den Resourcenschutzblock
- und unbedingt S: AnsiString , da er D2009 nutzt und das Unicode hier bestimmt negative Auswirkungen zeigt
- da, wo du keine Ahnung hast ... den letzen Befehl in eine neue Zeile und schon wird es verständlicher
(Werte/Integer/Bytes in IFs werden als "Boolean" angesehn ... <> 0)
- ich glaub swapBytes ist nicht nötig (Low, High)
- statt SmallInt lieber Word verwenden ... nicht daß man hier eventuell noch in eine Endlosschleife tappt
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 5. Okt 2010 um 21:28 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz