07.03.2010, 13:00
Hi Developer,
Vorweg:
- ich programmiere unter Windows7
- hab mir VirtualBox mit Ubuntu eingerichtet und
- kompiliere alles mit dem MinGW-Makefile zur .dll
bin so ziemlich neu auf dem Gebiet Plugin-Programmierung, hab allerdings schon ein paar Jahre Programmiererfahrung.
Ich bin zur zeit daran ein Plugin für Pidgin zu basteln, wobei ich die .dll gleich noch als shared lib nutzen will um mir in einem anderen Programm die Daten die ich brauche zu nutze zu machen.
Jetzt mein Problem:
wie kann ich dem Compiler mitteilen das ich einige Resourcen bzw. Variablen shared haben will?
Unter Windows C++ mache ich das ganze mit
#pragma data_seg( "shared" )
// shared stuff
#pragma data_seg( );
#pragma comment( linker, "/SECTION:shared,RWS" );
und Fuktionen die ich außerhalb der DLL nutzen will mit __declspec( dllexport).
Also das mit den Funktionen funktinert soweit, auf die kann ich von außen zugreifen, aber das mit den shared Variablen funktioniert nicht, da sagt er immer er ignoriert die #pragma Anweisungen.
Könnt ihr mir da helfen?
Lg Tobi
Vorweg:
- ich programmiere unter Windows7
- hab mir VirtualBox mit Ubuntu eingerichtet und
- kompiliere alles mit dem MinGW-Makefile zur .dll
bin so ziemlich neu auf dem Gebiet Plugin-Programmierung, hab allerdings schon ein paar Jahre Programmiererfahrung.
Ich bin zur zeit daran ein Plugin für Pidgin zu basteln, wobei ich die .dll gleich noch als shared lib nutzen will um mir in einem anderen Programm die Daten die ich brauche zu nutze zu machen.
Jetzt mein Problem:
wie kann ich dem Compiler mitteilen das ich einige Resourcen bzw. Variablen shared haben will?
Unter Windows C++ mache ich das ganze mit
#pragma data_seg( "shared" )
// shared stuff
#pragma data_seg( );
#pragma comment( linker, "/SECTION:shared,RWS" );
und Fuktionen die ich außerhalb der DLL nutzen will mit __declspec( dllexport).
Also das mit den Funktionen funktinert soweit, auf die kann ich von außen zugreifen, aber das mit den shared Variablen funktioniert nicht, da sagt er immer er ignoriert die #pragma Anweisungen.
Könnt ihr mir da helfen?
Lg Tobi