So was ähnliches wie Stefans Versuch geht tatsächlich:
Delphi-Quellcode:
unit WindowsX;
interface
uses
Windows;
function MessageBoxX(hWnd: HWND; lpText, lpCaption: PChar; uType: UINT): Integer;
stdcall;
type
TWindowsX =
class
class function MessageBox(hWnd: HWND; lpText, lpCaption: PChar; uType: UINT): Integer;
stdcall;
static;
end;
implementation
function MessageBoxX;
external user32
name '
MessageBoxA';
class function TWindowsX.MessageBox;
external user32
name '
MessageBoxA';
end.
Aufruf:
Delphi-Quellcode:
begin
MessageBoxX(0, 'Direkt', 'Direkt', 0);
TWindowsX.MessageBox(0, 'Per Klasse', 'Per Klasse', 0);
end.
Ist natürlich nicht wirklich OO, aber man könnte die importierten Routinen zumindest gruppieren und privat machen.
Edit: Das
static hinterm stdcall ist wichtig - es beseitigt den Self-Pointer aus
himitsus Post.