neurino lib's einbinden.....

Games, Plugins, Utils, Tools, 3rdParty, etc...
logisch
Interessierter
Interessierter
Beiträge: 26
Registriert: Freitag 3. Mai 2002, 15:45

neurino lib's einbinden.....

Beitrag von logisch »

Hi,

Also ich beschäftige mich gerade mit plugins, und würde gerne neutrino Funktionen mit in das plugin einbinden. Es geht mir erst mal um die generelle systematic.

beispiel:

Code: Alles auswählen

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Headerdateien

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

extern int ShowHintUTF(const char * const Caption, const char * const Text, const int Width , int timeout );

void plugin_exec(PluginParam *par)
{
	ShowHintUTF( "messagebox.info", "Plugin gestartet....", 450, 2 );
}
Wenn ich aber das Plugin starte, bekomme ich ne fehlermeldung das es das Symbol "ShowHintUTF..." nicht kennt.

Also meine Frage..... :roll:

1.) Kann man neutrino lib's in ein Plugin einbinden.....
2.) Wenn ja...wie, ein beispiel wäre mir da hilfteich.....

P.S.
leider kenne ich mich mit makefiles und deren kommando's nicht gut aus :(...da muss ich noch viel lernen. :D

Ach ja....das man die HTTP Schnittstelle verwenden kann (für Infomeldungen usw..) ist mir schon klar.....aber das möchte ich ja nicht.
Npq
Senior Member
Beiträge: 1339
Registriert: Donnerstag 24. April 2003, 12:12

Beitrag von Npq »

Solange das Plugin läuft erhält es exklusiven Zugriff auf die Box und Neutrino wird nicht mehr ausgeführt.

Plugins sind GUI-unabhängig ausgelegt, daher vergiß, daß Neutrino im Hintergrund überhaupt läuft.

Popups per HTTP-Schnittstelle funktionieren deswegen auch nicht.

Wenn du GUI-Funktionen benutzen willst, kannst du das wohl in Enigma tun, dort wurde soweit ich weiß eine spezielle GUI-abhängige Pluginmöglichkeit geschaffen.
logisch
Interessierter
Interessierter
Beiträge: 26
Registriert: Freitag 3. Mai 2002, 15:45

Beitrag von logisch »

Hi,

Aber man kann doch eine Statische Lib wie z.B. "libneutrino_gui.a" in ein Plugin aufnehmen oder etwa nicht...???

Oder ist das Problem, weil es eine Statische lib ist.....

....bin ich da auf dem Holzweg.... :-?

P.S.
Das mit der HTTP wusste ich noch nicht...hatte es bisher nur bei eigenständigen prog. / schripten benützt. Wirder ein bischen schlauer geworden.... :D

Und Enigma möchte ich nicht benützen....bin halt ein neutrino fan. :D

@ Npq
Danke schon mal für deine Antwort. :D
rasc
Senior Member
Beiträge: 5071
Registriert: Dienstag 18. September 2001, 00:00

Beitrag von rasc »

bei statischen Libs kommst du schnell in Größen-Probleme...
die Box hat nur 8 MB Flash...
logisch
Interessierter
Interessierter
Beiträge: 26
Registriert: Freitag 3. Mai 2002, 15:45

Beitrag von logisch »

Aha...als doch möglich....aber ein speicherproblem bei der Box.... :cry:

Nur zum verständniss, wäre es eine Shared Lib hätte man diese Speicher-Problem nicht, da diese nur einmal gebraucht wird, und nicht mehrmals wie eine statische Lib. Hab ich das so richtig verstanden...???

Nun würde mich nur noch Interesieren, wie man dies macht...möchte ja was lernen, auch wenn ich es in diesem fall nicht gebrauchen / bzw. anwenden kann.

P.S. Und zum Testen in meiner YADD hab ich keine Speicherprobleme.... :D
Npq
Senior Member
Beiträge: 1339
Registriert: Donnerstag 24. April 2003, 12:12

Beitrag von Npq »

Wenn du dich ausführlicher damit beschäftigen willst wirst du nicht ums Studium der Compiler und Linker-Handbücher rumkommen weil das ziemlich davon abhängig ist was du erreichen willst und wenn du gar nicht weißt was du eigentlich erreichen KANNST, dann bist du ja erst gar nicht in der Lage die richtige Frage zu stellen.

Eine statische Lib wird zur Compilezeit dem ausführbaren Programm hinzugefügt, nimmt also jedesmal Platz weg und ist bei Neutrino nur als Zwischenprodukt gedacht, um den Code modular zu halten.

Eine dynamische or "shared" Lib wird zur Laufzeit geladen, normalerweise beim Start vom Loader, welcher auch das ausführbare (ELF)-Image selber ins RAM lädt. Es gibt allerdings auch die Möglichkeit, es manuell per dlopen() durchzuführen und genau das wird bei den Plugins gemacht.

Anschließend wird die Funktion "plugin_exec" aufgerufen, so daß diese sozusagen die "main"-Funktion darstellt.
logisch
Interessierter
Interessierter
Beiträge: 26
Registriert: Freitag 3. Mai 2002, 15:45

Beitrag von logisch »

Hi Npq
Wenn du dich ausführlicher damit beschäftigen willst wirst du nicht ums Studium der Compiler und Linker-Handbücher rumkommen weil das ziemlich davon abhängig ist was du erreichen willst und wenn du gar nicht weißt was du eigentlich erreichen KANNST, dann bist du ja erst gar nicht in der Lage die richtige Frage zu stellen.
Genau aus diesem Grund habe ich ja "laienhaft" (oder auch falsch ???) gefragt. :-?

Danke für deine Erklärung zwischen den unterschieden der lib's nun habe ich es verstanden. :D

Da ich diese Programiersprache nie gelernt habe, und eigendlich Windows Anwender bin tue ich mich etwas schwer in der Materie. (Besonders mit den Make-files und deren zusammenhänge) :wink:

P.S.
Wer gute Seiten zu diesem Thema hat....immer her damit.... :D
Npq
Senior Member
Beiträge: 1339
Registriert: Donnerstag 24. April 2003, 12:12

Beitrag von Npq »

Ich wollte eigentlich nur vermeiden, daß du dir vor den Kopf gestoßen vorkommst wenn ich ohne Erklärung "man ld" und "man gcc" gesagt hätte. ;)

Für Libs ist
http://www.tldp.org/HOWTO/Program-Library-HOWTO
recht gut.

Makefiles sind wieder ein komplett eigenes Thema, vor allen Dingen wenn da die Autotools dazukommen.

Bei denen wird dann die Erzeugung von Libs wiederum über Libtool "abstrahiert", was ebenfalls wieder ein Thema für sich ist.

Beim CDK kommt noch dazu, daß alles cross-kompiliert wird, was - du hast es erraten - schon wieder ein ganz eigenes Thema ist.

Eigentlich ist das alles ziemlich viel Stoff. Vielleicht guckst du dir besser an wie die Plugins im CDK kompiliert werden, dann hast du auch schneller ein Erfolgserlebnis wenn du die Makefile.am von dort als Vorlage nimmst.
logisch
Interessierter
Interessierter
Beiträge: 26
Registriert: Freitag 3. Mai 2002, 15:45

Beitrag von logisch »

@ Npq

Ich sehe schon....muss noch viel lesen und natürlich üben. :D

Und danke für den Link....der wird mich ganz schön lange beschäftigen.

Das mit den Makefiles von anderen Plugins übernehmen, und entsprechend abändern, das mache ich derzeit, aber leider blicke ich da nicht immer so durch, und deshalb auch meine ursprüngliche Frage.

Also ich kann dir nur ein Lob aussprechen, denn du hast es für einen Anfänger wie ich es bin, ganz gut rübergebracht.

...nochmals Danke für die Infos...muss jetzt mal lesen gehen....
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Re: neurino lib's einbinden.....

Beitrag von dietmarw »

nur mal interessehalber das es ja doch schon recht lange her ist..
(und weil sich jemand bereit erklährt hat das uhr/screensaver plugin quelloffen neu zu programmieren)

hat sich an der thematik "plugins mit neutrino funktionen" eigentlich was geändert?
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: neurino lib's einbinden.....

Beitrag von seife »

nein