Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#13

Re: API Casten ala ALIAS von VB

  Alt 17. Okt 2008, 10:48
Zitat von DeddyH:
Du könntest die Typdeklaration der Funktion ja entsprechend anpassen.
Delphi-Quellcode:
type
  TFunction = function(Originalrecord: TOriginalrecord): Ergebnistyp;
wird zu
Delphi-Quellcode:
type
  TFunction = function(DeinRecord: TDeinRecord): Ergebnistyp;
Viel Erfolg.
Nein das geht auf keinen fall ich muss ja die alte weiterhin verwenden.

Hier ein Sample..

Delphi-Quellcode:
type
  TMyBitmapInfo = Record
     bmiHeader : TBitmapInfoHeader;
     bmiColors : array [0..255] of RGBQUAD;
  end;
Delphi-Quellcode:
function TSkinEngine.MyCreateDIBSection (imgHdc: Hdc; Width, Height:Integer; BitCount: Integer):Integer;
var
  bi: MYBITMAPINFO;
  p : Pointer;
begin
    bi.bmiHeader.biSize := SIZEOF(bi.bmiHeader);
    bi.bmiHeader.biWidth := Width;
    bi.bmiHeader.biHeight := Height;
    bi.bmiHeader.biPlanes := 1;
    bi.bmiHeader.biBitCount := BitCount;
    bi.bmiHeader.biCompression := BI_RGB;
    Result := CreateDIBSection(imgHdc, bi, DIB_RGB_COLORS, p, 0, 0);
end;
CreateDIBSection kennt aber MYBITMAPINFO nicht ok ?

Weil diese im Original auf
Delphi-Quellcode:
type
  PBitmapInfo = ^TBitmapInfo;
  {$EXTERNALSYM tagBITMAPINFO}
  tagBITMAPINFO = packed record
    bmiHeader: TBitmapInfoHeader;
    bmiColors: array[0..0] of TRGBQuad;
  end;
  TBitmapInfo = tagBITMAPINFO;
  {$EXTERNALSYM BITMAPINFO}
  BITMAPINFO = tagBITMAPINFO;
zeigt...
Also was ich möchte ist ähnlich wie in VB MYBITMAPINFO auf die Originale DLL verlinken.

Sollte dann eigentlich so aussehen
Org..
Delphi-Quellcode:
{$EXTERNALSYM CreateDIBSection}
function CreateDIBSection(DC: HDC; const p2: TBitmapInfo; p3: UINT;
  var p4: Pointer; p5: THandle; p6: DWORD): HBITMAP; stdcall;
Neu..
Delphi-Quellcode:
{$EXTERNALSYM CreateDIBSection}
function CreateDIBSection(DC: HDC; const p2: TMyBitmapInfo; p3: UINT;
  var p4: Pointer; p5: THandle; p6: DWORD): HBITMAP; stdcall;
gruss Emil
  Mit Zitat antworten Zitat