... 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