Einzelnen Beitrag anzeigen

bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: CORETEMP mit Shared Memory

  Alt 7. Jun 2009, 00:08
Habe mich mal an der aktuellen dll versucht. Wenn ich das richtig verstanden habe, benötigt man nicht mehr das starten der CoreTemp.exe

Ich komme zur Zeit nicht weiter, beim Aufruf von
if GetCoreInfo(NewCoreTempInfo)... bekomme ich false zurück. Anscheinend ist meine Übergabe der Daten fehlerhaft...

Jemand eine Idee ?

Hier der Link zur C++ Info: Core Temp mit Dll



Delphi-Quellcode:
unit CoreTempUnit;

interface

uses
  Windows;


type
  TCTInfo = record
    uiLoad : array [0..255] of Cardinal; //256 = 1024 bytes
    uiTjMax : array [0..127] of Cardinal; //128 = 512 bytes
    uiCoreCnt :Cardinal; // 4 bytes
    uiCPUCnt :Cardinal; // 4 bytes
    fTemp : array [0..255] of single; //256 * 4 bytes = 1024 bytes
    fVID : single; //real 4 bytes
    fCPUSpeed : single; //real 4 bytes
    fFSBSpeed : single; //real 4 bytes
    fMultiplier : single; //real 4 bytes
    sCPUName : array [0..99] of Char; //String[100]; = 100 bytes
    ucFahrenheit : Boolean; // 1 byte
    ucDeltaToTjMax: Boolean; // 1 byte
  end; // 2686 bytes

 PCTInfo = ^TCTInfo;
 
 TFNGetCoreInfo = function(Data: PCTInfo):boolean; stdcall;


function LoadCoreTempDLL:Boolean;
function UnloadCoreTempDLL:Boolean;

var
  NewCoreTempInfo : PCTInfo;
  GetCoreInfo : TFNGetCoreInfo = nil;
  CoreLib : HMODULE;


implementation


function LoadCoreTempDLL:Boolean;
begin
  result := false;
  Corelib := LoadLibrary('GetCoreTempInfo.dll');
  if Corelib <> 0 then
  begin
    @GetCoreInfo := GetProcAddress(Corelib, 'fnGetCoreTempInfoAlt');
    result := true;
  end;
end;


function UnloadCoreTempDLL:Boolean;
begin
  if CoreLib <> 0 then
  begin
    FreeLibrary(CoreLib);
    result := True;
  end else
    result := False;
end;
Gruß, bluescreen25
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat