Einzelnen Beitrag anzeigen

Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#9

Re: DLL einbinden, in Klasse oder global

  Alt 11. Nov 2009, 14:55
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.
Uli Gerhardt
  Mit Zitat antworten Zitat