Einzelnen Beitrag anzeigen

Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#16

Re: Eigene Fehlercodes / Fehlermeldungen erstellen/verwalten

  Alt 21. Feb 2010, 21:41
Zitat von himitsu:
Wenn du eigene Fehlercodes z.B. über MSDN-Library durchsuchenSetLastError (MSDN-Library durchsuchenGetLastError) ausliefern willst, dann kannst du diese nicht einfach so vergeben ... (die 1 ist z.B. schon belegt)

Es gibt dort einen nur gewissen Bereich, welchen du verwenden dürftest, außerdem gibt es für diese Codes ein festgelegtes Format.
Okay, das stimmt natürlich. Deshalb nutzt man auch hier das 29te Bit, um damit keine Probleme zu haben:
Zitat:
Bit 29 is reserved for application-defined error codes; no system error code has this bit set.
Das gilt auch für HRESULT nur nutzt man da normal nicht SetLastError, was aber möglich wäre.

Daher zwei mögliche Wege.
1. HRESULT als Rückgabewert nutzen:
Delphi-Quellcode:
function MyFunc(...) : HRESULT;
begin
  result := MakeResult(1, 100, MY_ERROR) or $20000000;
end;
2. SetLastError nutzen
Delphi-Quellcode:
function MyFunc(...) : Boolean;
begin
  //fehler
  SetLastError(MakeResult(1, 100, MY_ERROR) or $20000000);
  result := false;
end;
Das sieht jetzt merkwürdig aus, weil normal bei GetLastError einer der ERROR_XXX (z.B. ERROR_FILE_NOT_FOUND) rauskommt. Aber der Autor der Funktion kann das selbst bestimmen.


Zitat von DJ-SPM:
Das hört sich recht interessant an und ich bin nicht abgeneigt. Aber...: Bin ich dann von ActiveX abhängig?

So genau habe ich das jetzt nicht verstanden.
Nein, das ist die Unit ActiveX.pas, worin diese Funktionen deklariert sind. D.h. nicht, dass du ActiveX verwendest. Du könntest diese Funktionen auch einfach rauskopieren oder selbst erstellen.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat