Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Pointer & Co (https://www.delphipraxis.net/148518-pointer-co.html)

gibb 13. Mär 2010 00:04

Re: Pointer & Co
 
hi

Hab jetzt ne 30 Tage trial auf nem Rechner installiert um zu kapieren wo meine Daten hingehen. Ein Blick auf die Daten im Record erklärt wo sie sind ;)

http://www.abload.de/thumb/resultsnc5q.png

also, ich mir gedacht ich immitier euch und spiel einwenig mit den datentypen und habe aus den array of int ein array of smallint gemacht und kriege das hier:

Delphi-Quellcode:
  TResultIntRecord = Packed Record
    Unknown : Array[0..5] of SmallInt;//unbekanntes Tag
    NumTemps : SmallInt; //Anzahl der Temperaturen
    NumFans : SmallInt; //Anzahl der Lüfter
    NumVolts : SmallInt; //Anzahl der Spannungen
    Temps   : Array[0..63] of smallint; //Werte der Temperaturen
    Fans    : Array[0..63] of smallint; //Drehzahl der Lüfter
    Volts   : Array[0..63] of smallint; //Werte der Spannungen
  end;
http://www.abload.de/thumb/resultskzn9.png

Jetzt zwei fragen 1. wieso verhält es sich so ? Ich hab schon geschnallt das es mit der speichergrösse zusammenhängt mit welcher sich der datentyp sich reserviert. und folglich verschieben sich die Zahlen. Gibts noch mehr das man dazu wissen sollte? wie z.b. wie finde ich heraus welcher datentyp der richtige ist ohne lang drum herum zu probieren? oder sonstige theorie... ich würde mich da gerne noch einwenig vertiefen.

Frage2: Wieso lässt er immer noch ne 0 zwischen den einträgen? Wofür ist diese da?

Gruss GIBB

Blup 16. Mär 2010 14:55

Re: Pointer & Co
 
Mit SpeedFan 4.40 funktioniert bei mir diese Struktur (bzw. stimmt mit der Anzeige in SpeedFan überein):
Delphi-Quellcode:
  TSharedMem = packed record
    Version : Word;                   // 2 Byte
    Flags   : Word;                   // 2 Byte
    MemSize : Integer;                // 4 Byte
    Handle  : THandle;                // 4 Byte
    NumTemps : Word;                   // 2 Byte Anzahl der Temperaturen
    NumFans : Word;                   // 2 Byte Anzahl der Lüfter
    NumVolts : Word;                   // 2 Byte Anzahl der Spannungen
    Temps   : array[0..31] of Integer; // 32 * 4 Byte Werte der Temperaturen
    Fans    : array[0..31] of Integer; // 32 * 4 Byte Drehzahl der Lüfter
    Volts   : array[0..31] of Integer; // 32 * 4 Byte Werte der Spannungen
  end;
Es sind maximal 32 Werte je Typ.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 Uhr.
Seite 4 von 4   « Erste     234   

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