Mit MinGW shared dll compilieren?!



  • Hallo,

    also ich kenn mich wirklich nicht so gut mit Compiler und dem drumherum aus und hoffe hier kann mir geholfen werden.

    Das Problem ist ich möchte eine DLL compilieren, welche shared Variablen enthält, also möchte diese gerne von mehreren Programmen lesen können bzw drauf zugreiffen. In meinen C++ Projekten unter MS VS 2008, konnte man dort einfach die Variablen die man in anderen Programmen auch brauchte, wie folgt shared deklarieren:

    #pragma data_seg( "shared" )
    
        // shared stuff
    
    #pragma data_seg( );
    #pragma comment( linker, "/SECTION:shared,RWS" );
    

    Allerdings meinte der linker, dann er ignoeriert diese Anweisungen.
    Gibt es da irgendwie andere Anweisungen die ich einfach in den Source schreiben kann?

    Lg Tobi



  • also bei mir funktioniert das so:

    #define SHARED __attribute__((section(".shr"), shared))
    VariablenTyp varName SHARED = NULL;
    

    und komilieren dann mit

    g++ -shared main.cpp -o main.dll
    

    (ist nur kopiert, aber läuft;) )



  • Bei mir hat es mal so funktioniert (damals ein Beispiel-Programm aus Buch "Windows Programmierung" von Charles Petzold kompiliert):

    all:
    	mingw32-gcc -c -DBUILD_DLL EdrLib.c
    	mingw32-gcc -shared -o EdrLib.dll -Wl,--out-implib,libEdrLib.a EdrLib.o -mwindows
    	mingw32-gcc EdrTest.c -o EdrTest.exe -pedantic -Wall -mwindows -ggdb -L./ -lEdrLib
    


  • Joa danke, ich habs auch gerade im Netz gefunden *g*

    Lg Tobi


Anmelden zum Antworten