Neee, nicht ich meine ... Embarcadero hätte passende Fehlermeldungen werfen können, anstatt der Standardexception von Microsoft.
Selbst eine "sprechende" Fehlermeldung ohne Nennung der
DLL/Function würde doch nett sein?
Hach, auch bei den Abstract-Exceptions hätte es Möglichkeiten gegeben Methodenname+Klassenname der abstrakten Methode in der
Exception zu nennen.
Zumindestens in XE sind/waren die Fehlermeldungen nicht wirklich aussagefähig.
Und ich bin mir fast sicher, dass Embarcadero seit der Einführung in 2010 daran nichts mehr verändert hat.
Delphi-Quellcode:
function MessageBox2(hWnd: HWND; lpText, lpCaption: PWideChar; uType: UINT): Integer;
stdcall;
external '
user32.dll'
name '
MessageBoxW2' delayed;
function MessageBox3(hWnd: HWND; lpText, lpCaption: PWideChar; uType: UINT): Integer;
stdcall;
external '
blubb.dll'
name '
MessageBoxW' delayed;
procedure TForm4.FormCreate(Sender: TObject);
begin
MessageBox(Self.Handle, '
Test', '
MessageBox', 0);
try
// normal: Der Prozedureinsprungpunkt "MessageBoxW2" wurde in der DLL "...\Project4.exe" nicht gefunden.
// delayed: Externe Exception C0FB007F
MessageBox2(Self.Handle, '
Test', '
MessageBox2', 0);
except
on E:
Exception do
ShowMessage('
MessageBox2: ' + E.
Message);
end;
try
// normal: Das Programm kann nicht gestartet werden, da blubb.dll auf dem Computer fehlt. ...
// delayed: Externe Exception C0FB007E
MessageBox3(Self.Handle, '
Test', '
MessageBox3', 0);
except
on E:
Exception do
ShowMessage('
MessageBox3: ' + E.
Message);
end;
end;