Thema: Delphi Pointer & Co

Einzelnen Beitrag anzeigen

gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#11

Re: Pointer & Co

  Alt 4. Mär 2010, 13:41
Hi,

hab jetzt folgendes gemacht:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  hSFMemory: HWND;
  SfAreaPtr: Pointer ;
  MyResultRecord: TMyRecord;
  i: Integer;
  txt: String;
begin
  fillchar(buffer,1000,0);
  hSFMemory := 0;
  SfAreaPtr := nil;
  i := 0;
  try
    hSFMemory := OpenFileMapping(FILE_MAP_READ, False, 'SFSharedMemory_ALM');
    if HSFMemory <> 0 then begin
      SfAreaPtr := MapViewOfFile(hSFMemory, FILE_MAP_READ, 0, 0, 0);
      CopyMemory(Addr(buffer),SfAreaPtr,1000);
      MyResultRecord.Unknown:= buffer[0];
      MyResultRecord.NumTemps:= buffer[1];
      MyResultRecord.NumFans:= buffer[2];
      MyResultRecord.NumVolts:= buffer[3];
      MyResultRecord.Temps:= buffer[4];
      MyResultRecord.Fans:= buffer[5];
      MyResultRecord.Volts:= buffer[6];
    end;
  finally
    UnmapViewOfFile(SfAreaPtr);
    CloseHandle(hSFMemory);
  end;
end;
Wobei das scheint nicht zu stimmen, die einzige zahl die ich wiedererkenne währ numoftemps wobei diese so bei numofvolts eingetragen ist.

Was macht dieser VB Code? oder was ist der gedanke dabei?:
Zitat:
RetVal.Temps = mMyArea.NumTemps
RetVal.Volts = mMyArea.NumVolts
RetVal.Fans = mMyArea.NumFans
For x = 0 To 32 Step 2
RetVal.Temp(x / 2) = mMyArea.Temps(x) / 100
RetVal.Fan(x / 2) = mMyArea.Fans(x)
RetVal.Volt(x / 2) = mMyArea.Volts(x) / 100
Next
gruss gibb
  Mit Zitat antworten Zitat