![]() |
API Casten ala ALIAS von VB
Wie kann ich in Delphi ein ALIAS auf eine API Funktion realisieren.
Code:
Ich möchte
DECLARE FUNCTION MyCreateDIBSection LIB "GDI32.DLL" ALIAS "CreateDIBSection" (BYVAL hdc AS DWORD, pbmi AS MYBITMAPINFO, BYVAL dwUsage AS DWORD, BYVAL ppvBits AS DWORD, BYVAL hSection AS DWORD, BYVAL dwOffset AS DWORD) AS DWORD
Delphi-Quellcode:
das Array ändern bmiColors: array[0..255] of TRGBQuad
type
PBitmapInfo = ^TBitmapInfo; {$EXTERNALSYM tagBITMAPINFO} tagBITMAPINFO = packed record bmiHeader: TBitmapInfoHeader; bmiColors: array[0..0] of TRGBQuad; end; TBitmapInfo = tagBITMAPINFO; {$EXTERNALSYM BITMAPINFO} BITMAPINFO = tagBITMAPINFO; und einen eigenen Typ als MYBITMAPINFO definieren. gruss Emil |
Re: API Casten ala ALIAS von VB
Delphi-Quellcode:
function foo(...): ...; external 'dll' name 'bar';
|
Re: API Casten ala ALIAS von VB
Zitat:
Danke gruss Emil |
Re: API Casten ala ALIAS von VB
|
Re: API Casten ala ALIAS von VB
Zitat:
Oder geht das auch ohne. gruss Emil |
Re: API Casten ala ALIAS von VB
Die Funktion der DLL dynamischen linken funktioniert auch.
|
Re: API Casten ala ALIAS von VB
Finde keine Themen dazu auch nicht in der Hilfe
Keine ahnung wie ich das linken soll gruss Emil |
Re: API Casten ala ALIAS von VB
Delphi-Quellcode:
Die Funktion heißt hier in der DLL "Wuppdi" und angesprochen wird sie über "MyFunction". Ich kann Dir da Ollis
type
TMyImportedFunction = function(dwFoo: DWORD): integer;stdcall; var MyFunction: TMyImportedFunction = nil; ... var h: THandle; begin h := LoadLibrary('MeineDLL.dll'); if h <> 0 then begin @MyFunction := GetProcAddress('Wuppdi'); if Assigned(@MyFunction) then Bla := MyFunction(10); end; end; ![]() |
Re: API Casten ala ALIAS von VB
Zitat:
Ich möchte nichts anderes als BITMAPINFO auf MyBITMAPINFO linken Das andere bleibt doch alles gleich .. hmmm verstehe die Technik nicht. Werd mir das Tutorial mal anschaun ob ich da einen vergleich habe. Mit DLL's kenn ich mich aus nur nicht mit foo und konsorte. Warum muss ich eine DLL einladen von der die externals schon in der Windows.pas enthalten sind. Das ist doppelt gemoppelt oder nicht ? Danke für deine beschreibung. gruss Emil |
Re: API Casten ala ALIAS von VB
:oops: Man sollte den Ausgangspost auch mal genau durchlesen. Allerdings bezweifle ich, ob das so gehen wird, denn die Funktion der DLL erwartet an der Stelle halt ein Array mit einem Element und nicht mit 256, d.h. die Record-Größe stimmt dann ja nicht. Kann aber auch sein, dass ich hier Quatsch rede.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz