statische lib vs dll



  • Hallo zusammen,

    ich hätte mal eine Frage bezüglich Bibliotheken und deren Verwendung in einem Projekt. Wann ist es sinnvoll die Bibliothek statisch einzubinden und wann die dynamische (dll)? Wie trefft ihr da eure Entscheidungenß Kann das vielleicht mal jemand mit einem konkreten Anwendungsfall zu beschreiben? Das wäre super nett!!

    Vielen Dank
    Melanie



  • DLLs sind gut, wenn Du z.B. ein Plugin System hast bei dem eine DLL ein Plugin representiert. Oder wenn Du die DLL, z.B. zu update Zwecken, austauschen können möchtest.

    Simon



  • plus, wenn die DLL von mehreren Applikationen gleichzeitig genutzt werden soll. Dann muss aber auf Thread-Safeness geachtet werden.



  • gastgast schrieb:

    plus, wenn die DLL von mehreren Applikationen gleichzeitig genutzt werden soll. Dann muss aber auf Thread-Safeness geachtet werden.

    Schwachsinn.



  • gastgast schrieb:

    plus, wenn die DLL von mehreren Applikationen gleichzeitig genutzt werden soll. Dann muss aber auf Thread-Safeness geachtet werden.

    Na, da wird aber wohl hoffentlich jede DLL einen eigenen Prozess erhalten. Weiß jetzt nicht, was das mit Multithreading zu tun hat.



  • Man kann eine DLL auch statisch in den Speicher laden. Dann werden z.B. die Daten in der DLL von allen Prozessen geteilt. Das muss man beim zugriff darauf berücksichtigen.



  • hinzu kommt noch, dass man in DLLs speichersegmente explizit teilen kann

    extern "C"
    {
    #pragma data_seg (".sharedseg")
    static int value = 42;
    #pragma data_seg()
    
    __declspec( dllexport ) void setValue(int newVal)
    { 
    	value = newVal;
    }
    __declspec( dllexport ) int getValue()
    {
    	return value;
    }
    
    }
    

    Die section macht man dem Linker dann mit

    -section:.sharedseg,rws
    

    bekannt. Zugegeben, das löst man besser mit memory mapped files, aber es geht auch so.



  • loks schrieb:

    ...Schwachsinn.

    🙄 👎
    Ist das wirklich nötig und hilfreich?
    Mir scheint: Weder noch.

    Gruß,

    Simon2.



  • Ist das wirklich nötig und hilfreich?

    Alles nach der Antwort (also zweiter Post) ist unnoetig. Und warum alle mit ihrem shared blablub kommen ... (PS: Ich finde die Aussage auch Schwachsinn.)


Anmelden zum Antworten