Fragen zu Structuren & Procedure[DDL]
Verfasst: 20.02.2009 17:14
Hey!
Ich habe vor ein kleines Pluginsystem zu schreiben. Habe mir ein kleines Programm geschrieben das mir Youtube-Videos läd und dann mit ffmpeg in mp3s umwandelt. Da ich jetzt noch andere Cliphoster hinzufügen will dachte ich an die Pluginlösung in Form vom DLL's.
Ich habe jetzt zu dem Thema 2 Fragen.
1. Ich kann in Structuren keine Pointer verwenden. Denn ist ja nicht möglich. Kann ich unbedenklich als Pointer eine Interger, also *.i verwenden?
2. Ich habe mal ein wenig mit DLL's herumgespielt. Mal ein kleines Bsp:
Wie man im Code sehen kann rufe ich aus der Exe eine Funktion der DLL aus die NICHT mit ProcedureDLL deklariert ist.
Darf man das? Bestehen dadurch Risiken einen absturzes?
Schonmal danke für die Hilfe
Grüße Marv
Ich habe vor ein kleines Pluginsystem zu schreiben. Habe mir ein kleines Programm geschrieben das mir Youtube-Videos läd und dann mit ffmpeg in mp3s umwandelt. Da ich jetzt noch andere Cliphoster hinzufügen will dachte ich an die Pluginlösung in Form vom DLL's.
Ich habe jetzt zu dem Thema 2 Fragen.
1. Ich kann in Structuren keine Pointer verwenden. Denn
Code: Alles auswählen
Structure Event
*Pointer
a.i
b.i
EndStructure
Event.Event
Event\*Pointer = @Fiktivefunktion()
2. Ich habe mal ein wenig mit DLL's herumgespielt. Mal ein kleines Bsp:
Code: Alles auswählen
;---- DLL
Structure Event
Pointer.i
a.i
b.i
EndStructure
Procedure RegisterEvent()
MessageRequester("LOL?","hello, from DLL ;)",0)
EndProcedure
ProcedureDLL Reg(*in.Event)
*in\Pointer.i = @RegisterEvent()
*in\a.i = 123
*in\b.i = 456
EndProcedure
Code: Alles auswählen
;----EXE
Structure Event
Pointer.i
a.i
b.i
EndStructure
Event.Event
If OpenLibrary(0, "asd.dll")
*Regev = GetFunction(0, "Reg")
If *Regev
CallFunctionFast(*Regev, @Event)
EndIf
;Debug Event\Pointer.i
CallFunctionFast(Event\Pointer.i)
CloseLibrary(0)
EndIf

Schonmal danke für die Hilfe
Grüße Marv