Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#2

Re: Fehler beim laden einer Funktion aus einer DLL - PC boot

  Alt 2. Feb 2005, 08:34
Standard-Fehler der Delphiprogrammierer. Ein Zeiger in C ist oft Call-by-Reference.
Du gibst einen zufaelligen Zeigerwert an eine funktion, die dorthin schreibt.
Delphi-Quellcode:
program patch;

{$APPTYPE CONSOLE}

uses
  Windows;

type
  TRegOpenCurrentUser = function(samDesired: REGSAM; phkResult: PHKEY): LongInt; stdcall;

var
  LibModule: HMODULE;
  RegOpenCurrentUser: TRegOpenCurrentUser;
  hkResult: HKEY;
begin
  LibModule := LoadLibrary('Advapi32.dll');
  if LibModule <> 0 then // DLL wurde erfolgreich geladen
  begin
    RegOpenCurrentUser := GetProcAddress(LibModule, 'RegOpenCurrentUser');
    if Assigned(RegOpenCurrentUser) and (RegOpenCurrentUser(KEY_READ, @hkResult) = ERROR_SUCCESS) then
    begin
      //
    end;
  end;
end.
  Mit Zitat antworten Zitat