Hallo, ich will mich mit Irrlicht beschäftigen. Ich weiß das es eine UDF dafür gibt, allerdings liegt dort eine weitere DLL bei, worauf diese UDF zugreift.
Ich selber möchte direkt die Irrlicht.dll verwenden ohne Umwege über den Wrapper.
Nun stocke ich aber bei einem Dll Call. Und zwar arbeite ich gerade dieses Tutorial durch: Tutorial 1: HelloWorld
Mein derzeitiger Code sieht so aus:
Global $hIrrlicht, $IrrlichtDevice
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]$hIrrlicht = DllOpen('Irrlicht.dll')
[/autoit][autoit][/autoit][autoit]$irrlichtDevice = DllCall($hIrrlicht, 'ptr', 'createDevice', _
'E_DRIVER_TYPE', 'EDT_SOFTWARE', _
'dimension2d<u32>', 'dimension2d<u32>(640, 480)', _
'u32', 16, _
'bool', false, _
'bool', false, _
'bool', false, _
'IEventReceiver *', 0)
If @error Then MsgBox(0, '', 'Error: ' & @error, 5)
[/autoit][autoit][/autoit][autoit]While 1
WEnd
DllClose($hIrrlicht)
[/autoit]Ich weiß das ich DllCall total falsch verwende, aber bevor ich jetzt darauf näher eingehe solltet ihr euch kurz die Referenz dazu ansehen: createDevice()
Nun sollte ein Fenster erscheinen. Tut's aber nicht. Und zwar sieht man in der Referenz das ein "eigener Datentyp" verwendet wird. Kurz: (ich glaube so heißen die) eine Klasse. Wie kann ich dies nun als "Type" eintragen?
Ich hoffe ihr könnt mir weiterhelfen diesen DllCall so richtig zu stellen, dass dieser die gewünschte Funktion ausführt. Ich rätsel da jetzt schon seit gestern!
€dit:
Weil nicht jeder die Irrlicht.dll hat, habe ich das oben genannte Script sowie die DLL in diese *.zip ausgelegt: Irrlicht.zip