Einzelnen Beitrag anzeigen

Andru

Registriert seit: 1. Feb 2006
Ort: Salzgitter
24 Beiträge
 
Delphi 6 Enterprise
 
#18

Re: C++ DLL in Delphi einbinden

  Alt 13. Feb 2007, 12:02
... da bin ich schon wieder.

Ich kann leider noch nicht auf alle Funktionen der DLL zugreifen.
Init und Destroy klappen. Dort bekomme ich das richtige Result.
Nun hab ich aber eine PlayerCreate-Funktion, die mir nicht das gewünschte
Ergebnis liefert.
Kann das mit folgendem zusammenhängen?
Es gibt wohl zwei Arten des DLL-Einbinden unter C. implicit und explizit.
Ist das so wie bei Delphi statisch und dynamisch?

Dort steht, dass bei einer impliziten Einbindung eine Präprozessoranweisung
gemacht werden muss: PLAYER_SDK_USE_IMPLICIT

Bei einer expliziten Einbindung ein Include:
Code:
#define LOAD_FUNCTION_POINTER
#include <PlayerLibInterface.h>

//Einmaliger Aufruf wohl im ganzen Projekt:

PlayerLib::LoadPlayerLib( "<path>\\PlayerLib.dll" );

Meine Problem-Funktion ist folgende:
Code:
int CreatePlayer( HWND hWNdParent,
RECT& rectPlayer,
const char* szWndTitle);
umgesetzt hab ich sie wie folgt:
Delphi-Quellcode:
function CreatePlayer(hWndParent: HWND; rectPlayer: TRect;
         szWndTitle: PChar): Integer; cdecl; external 'lib\PlayerLib.dll';
und führe sie so aus:
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
rechteck: TRect;
resultCreate: Integer;
begin

rechteck.Left := 128;
rechteck.Top := 80;
rechteck.Right := 270;
rechteck.Bottom := 273;

  resultCreate := CreatePlayer(Form1.Handle, rechteck, 'test');
  Label5.Caption := IntToStr(resultCreate);
end;

Oh man,
bin wirklich aufgeschmissen ohne dieses Forum...


Danke euch allen!


Gruß,
Andru
  Mit Zitat antworten Zitat