Einzelnen Beitrag anzeigen

GOOFY009

Registriert seit: 24. Okt 2009
20 Beiträge
 
#1

Problem mit C++ Pointern

  Alt 20. Dez 2009, 18:07
Hallo !

Ich habe mal wieder ein Problem mit der Portierung von C++ Code nach Delphi.... Denke ich zumind., da das Programm nicht die richtigen Ergebnisse zu liefern scheint.

Hier mal die C++ Deklarationen und Funktionen :
Delphi-Quellcode:
    DWORD read = 0;
    LPBYTE buffer = new BYTE[end-start];
    DWORD_PTR ptr;
    int *value;
    int *cmp;
    int k, add, tmp;
    int pattern;

    if (!buffer)
   return;
   pattern = 0xFE27C0;
   if(ReadProcessMemory(procHandle, (void*)start, buffer, end - start, &read) == NULL)
        return;
    else
    {
      if (start+2*sizeof(value) >= end)
         return;
      for(add = 0; add < (int)(end - start - 2*sizeof(value)); ++add)
      {
         value = (int*)&buffer[add];
         cmp = (int*)&buffer[add+4];
         if (*value == pattern && *cmp == 0)


......
Und hier mal meine bisheriger Delphi Code:
Delphi-Quellcode:
var
  read : DWORD;
  buffer : Array of PByte;
  ptr : Longint;
  value, cmp : ^Integer;
  k, add, tmp : Integer;
  pattern : Integer;
begin
  read := 0;
  SetLength(buffer,(ends-start));
  if (Length(buffer) = 0) then exit;
  pattern := $FE27C0;
  if not(ReadProcessMemory(m_ProgHandle, Pointer(start), buffer, ends - start, read)) then
       exit
    else begin
        if (start + (2 *sizeof(value)) >= ends) then
       exit;
        for add := 0 to Integer(ends - start - (2*sizeof(value)))-1 do begin
       value := @buffer[add];
       cmp := @buffer[add+4];
            if (value^ = pattern) and (cmp^ = 0) then begin


........
Eventuell habe ich ja mit den Pointern einen Fehler gemacht.. ?!
Bin für jede Hilfe dankbar!

CU
GOOFY
  Mit Zitat antworten Zitat