selbst erstellte DLL und UseGadgetList darin
Verfasst: 25.08.2014 12:11
Hallo zusammen,
ich habe (eigentlich für Linux, soll aber auch unter WIndows laufen) eine DLL erstellt die Animationen auf einem ImageGadget abspielt. Sinn und Zweck ist die GUI für unterschiedliche Programme grafisch etwas aufzuhübschen, ohne den ganzen Code in andere Programme zu übernehmen sondern einfach nur die DLL einzubinden und die Animationen daraus zu starten (die Grafiken sind ebenfalls in der DLL enthalten).
Ich wollte einfach folgenden Befehl zur Verfügung stellen: AnimImageGadget(WindowID, x, y, AnimName, fps, width, height)
Innerhalb der Procedure benutze ich dann UseGadgetList(windowID), aber genau das funktioniert nicht. Zum besseren Verständnis mal der Code wie ich die DLL/so einbinde:
Wenn ich das starte, erhalte ich leider keine schönen Animationen sondern ein leeres Fenster mit folgenden Fehlermeldungen (Achtung Linux):
Der Rückgabewert der DLL ist das Gadget Handle bzw. die ID. AnimImageGadget_GetLastError() sollte eigentlich einen String liefern, das funktioniert aber nicht mit Import, muss ich da einen Pointer zurück liefern ?
Ich bin für alle Tips und Lösungsansätze dankbar.
ich habe (eigentlich für Linux, soll aber auch unter WIndows laufen) eine DLL erstellt die Animationen auf einem ImageGadget abspielt. Sinn und Zweck ist die GUI für unterschiedliche Programme grafisch etwas aufzuhübschen, ohne den ganzen Code in andere Programme zu übernehmen sondern einfach nur die DLL einzubinden und die Animationen daraus zu starten (die Grafiken sind ebenfalls in der DLL enthalten).
Ich wollte einfach folgenden Befehl zur Verfügung stellen: AnimImageGadget(WindowID, x, y, AnimName, fps, width, height)
Innerhalb der Procedure benutze ich dann UseGadgetList(windowID), aber genau das funktioniert nicht. Zum besseren Verständnis mal der Code wie ich die DLL/so einbinde:
Code: Alles auswählen
Import "animatedimages.so"
AnimImageGadget_Initialize()
AnimImageGadget.i(WindowID.i, Handle.i, X.l, Y.l, AnimName.s, Width.l=0, Height.l=0, DelayBetween.l=0, Decoration.l=0)
AnimImageGadget_GetLastError() ;??? .s
EndImport
If OpenLibrary(0, "animatedimages.so")
CallFunction(0, "AnimImageGadget(Handle.i, X.l, Y.l, AnimName.s, Width.l=0, Height.l=0, DelayBetween.l=0, Decoration.l=0)")
CloseLibrary(0)
EndIf
Define.l n
AnimImageGadget_Initialize()
If OpenWindow(0, 0, 0, 470, 90, "TEST", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
For n = 0 To 6
Select Random(2)
Case 0 : Debug AnimImageGadget(WindowID(0), n, n*64+10, 10, "folder_compare_anim", 0, 0, 0, #PB_Image_Border) : Debug AnimImageGadget_GetLastError()
Case 1 : Debug AnimImageGadget(WindowID(0), n, n*64+10, 10, "folder_search_anim", 0, 0, 0, #PB_Image_Border) : Debug AnimImageGadget_GetLastError()
Case 2 : Debug AnimImageGadget(WindowID(0), n, n*64+10, 10, "wait_anim", 0, 0, 0, #PB_Image_Border) : Debug AnimImageGadget_GetLastError()
EndSelect
Delay(100)
Next
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
Code: Alles auswählen
[12:02:12] Warte auf den Start des Executable...
[12:02:12] Executable-Typ: Linux - x64 (64bit, Unicode, Purifier)
[12:02:12] Executable gestartet.
[12:02:12] [WARNING] test_animimages2.pb (Zeile: 17)
[12:02:12] [WARNING] Gtk (CRITICAL): IA__gtk_fixed_put: assertion 'GTK_IS_FIXED (fixed)' failed
[12:02:12] [WARNING] test_animimages2.pb (Zeile: 17)
[12:02:12] [WARNING] Gtk (CRITICAL): IA__gtk_widget_realize: assertion 'GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
[12:02:12] [Debug] 40463808
usw...
Ich bin für alle Tips und Lösungsansätze dankbar.