![]() |
cards32.dll einbinden?
Hallo Alle Zusammen.
Ich möchte ein Kartenspiel programmieren und möchte dazu die Cards32.dll einbinden. Doch ich weiß nicht wie. Ich habe mich informiert, dass es in der cards32.dll verschiedene funktionen gibt. z.B cdtinit, cdtdraw,... Kann mir jemand ein kleines Beispiel geben, wie ich die dll einbinde! |
Re: cards32.dll einbinden?
versuchs mal damit
Delphi-Quellcode:
habs nicht getestet, müsste aber funktionieren
//im implementation-Abschnitt deklarieren
//das hier ist nur ein beispiel, das wahrscheinlich an die funktionen deiner DLL angepasst werden muss type TTestFunction = function(x,y:Integer):integer; var DLLHandle:THandle; Func:TFarProc; TestFunction:TTestFunktion; ergebnis:string; //laden der DLL DLLHandle := LoadLibrary(Pchar(DLLName)); //DLLName mit dem eigentlichen Namen der DLL ersetzen, logisch //Adresse einer Funktion ermitteln Func := GetProcAddress(DLLHandle,'cdtdraw'); //Wenn die Funktion gefunden wurde if Func <> nil then begin @TestFunction := Func; //Ausführen des Codes ergebnis := IntToStr(TestFunction(4,5)); //übergeben der Parameter an die Funktion Func:=nil; //Freigeben der DLL FreeLibrary(DLLHandle); :dance: kaemmi :coder: |
Re: cards32.dll einbinden?
Private Enum Suits
Clubs& = 0 Diamonds& = 1 Hearts& = 2 Spades& = 3 End Enum Private Enum CardFaces face_Ace& = 0 face_Two& = 4 face_Three& = 8 face_Four& = 12 face_Five& = 16 face_Six& = 20 face_Seven& = 24 face_Eight& = 28 face_Nine& = 32 face_Ten& = 36 face_Jack& = 40 face_Queen& = 44 face_King& = 48 End Enum Private Enum CardBacks cb_CrossHatch& = 53 cb_Plaid& = 54 cb_Weave& = 55 cb_Robot& = 56 cb_Roses& = 57 cb_IvyBlack& = 58 cb_IvyBlue& = 59 cb_FishCyan& = 60 cb_FishBlue& = 61 cb_Shell& = 62 cb_Castle& = 63 cb_Beach& = 64 cb_CardHand& = 65 cb_Unused& = 66 cb_X& = 67 cb_O& = 68 End Enum Private Enum Card Front& = 0 Back& = 1 Highlighted& = 2 End Enum '//Contructor Private Declare Function cdtInit Lib "cards32.dll" (dx As Long, dy As Long) As Long '//Terminator Private Declare Sub cdtTerm Lib "cards32.dll" () '//Standard Drawing function Private Declare Function cdtDraw Lib "cards32.dll" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long, ByVal lSuit As Suits, ByVal lCard As Card, ByVal clr As Long) As Long '//Extended Drawing function Private Declare Function cdtDrawExt Lib "cards32.dll" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long, ByVal dx As Long, ByVal dy As Long, ByVal lSuit As Suits, ByVal lCard As Card, ByVal clr As Long) As Long '//Aniation function to animate certain backs Private Declare Function cdtAnimate Lib "cards32.dll" (ByVal hDC As Long, ByVal lBack As CardBacks, ByVal X As Long, ByVal Y As Long, ByVal lState As Long) As Long wenn du das übersetzt haben willst sag bescheid, dauert aber länger :wink: |
Re: cards32.dll einbinden?
Schau mal hier:
![]() Es werden die Funktionen erklärt. Ist zwar für VB, aber das Prinzip ist dasselbe. Gruss, teebee |
Re: cards32.dll einbinden?
muss ich nicht erst die DLL in mein Programm einbinden
z.B procedure cdtinit external 'cards32.dll'; sodass er die funktionen wie cdtdraw, cdtanimate findet? |
Re: cards32.dll einbinden?
Wenn du lieb bittest mach ich dir ne Unit.
Aber den gedanke ist richtig! |
Re: cards32.dll einbinden?
Liste der Anhänge anzeigen (Anzahl: 1)
Falls du ne schönere Übersetzung brauchst dann warte mal bis Mittwoch. Für sowas brauch ich mal ne halbe Stunde ruhe.
|
Re: cards32.dll einbinden?
Deine *pas ist wirklich super! Danke erstmal! Wenn du das noch besser machst hast du was gut bei mir! :party: ich werte deine datei heute abend aus und meld mich wieder!
|
Re: cards32.dll einbinden?
ich hab mich drangesetzt. Aber raudgekommen ist nicht viel! :cry:
Delphi-Quellcode:
mit der Fuktion muss ich beginnen. ist klar!
function cdtInit(var dx, dy : Integer) : Integer;
aber was soll ich mit dx und dy anfangen? Wenn ich Werte reinsetzte sagt er mir "Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen" wenn ich variablen reinsetzte sagt er mir " undefinierter bezeichner" z.B
Delphi-Quellcode:
was muss ich schreiben damit es funktioniert?
procedure TForm1.FormCreate(Sender: TObject);
begin cdtinit(a, b); end; [edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit] |
Re: cards32.dll einbinden?
Du musst zwei Variablen deklarieren,
Delphi-Quellcode:
und die Variablen dann übergeben.
Var x,y : Integer;
Delphi-Quellcode:
Siehe Link in meinem Posting weiteroben: die Funktion gibt in diesen Variablen die Kartenmaße zurück.
Success := cdtInit(x,y);
Gruß, teebee |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:50 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 by Thomas Breitkreuz