Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#12
  Alt 10. Jun 2003, 21:26
Moin HomerGER,

irgendwie seh' ich im Moment keinen unmittelbaren Grund, warum das schiefgehen sollte.
Das einzige was mir auffällt:
Du benutzt RegCloseKey auch dann, wenn der Wert von key_hk nicht initialisiert wurde, weil der Aufruf von RegOpenKeyEx schiefgegangen ist.
Zudem stellt try/finally den Resourcenschutzblock dar, der für den Fall, dass RegOpenKeyEx nicht geklappt hat nicht benötigt wird.

Probier mal diese Variante:

Delphi-Quellcode:
Function Reg_Lesen_RYU(input_r : reg1_r) : reg_wert_r;
var
key_hk : HKEY;
begin
        if (RegOpenKeyEx(input_r.s1, PChar(input_r.s2), 0, KEY_READ, key_hk) = ERROR_SUCCESS) then
        begin
          try
            Result.s1 := 'offen';
            Result.s2 := '';
          finally
            RegCloseKey(key_hk);
          end;
        end
        else
        begin
            Result.s1 := 'zu';
            Result.s2 := '';
        end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat