Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Nachladbare library (static)

  1. #1
    Registrierter Benutzer
    Registriert seit
    29.10.2003
    Ort
    Bayern
    Beiträge
    70

    Question Nachladbare library (shared)

    hallo zusammen,

    ich habe für mein projekt eine statische lib erstellt (libpreview.so), nun möchte ich
    die lib laden und aufrufen, aber wie? (die libpreview.so liegt im unterordner plugin)

    ps.:
    die libpreview.so enthält eine UI, wo man sich eine vorschau ansehen kann

    ps2.:
    wenn ich auf mein Button Preview klick soll er die libpreview.so laden und die UI
    anzeigen
    Geändert von ChMaster|LFreak (27-05-2005 um 16:39 Uhr)
    ChMaster|LFreak --- Projektseite

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Zitat Zitat von ChMaster|LFreak
    ich habe für mein projekt eine statische lib erstellt (libpreview.so)
    .so weißt allerdings auf eine dynamische Bibliothek hin.
    Eine statische könntest du eh nicht laden

    die lib laden und aufrufen, aber wie? (die libpreview.so liegt im unterordner plugin)
    man dlopen
    man dlsym

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    29.10.2003
    Ort
    Bayern
    Beiträge
    70
    sorry meine shared
    danke werd es mir anschauen und berichten
    vorerst versuch ich es mit QLibrary
    ChMaster|LFreak --- Projektseite

  4. #4
    Registrierter Benutzer
    Registriert seit
    29.10.2003
    Ort
    Bayern
    Beiträge
    70

    [gelöst] Nachladbare library (static)

    lösung:

    aufruf:
    Code:
      typedef void (*MyPrototype)();
      MyPrototype myFunction;
    
      QLibrary myLib( "plugin/libpreview" );
    
      QString str = myLib.library();  
      myLib.load();
          
      myFunction = (MyPrototype) myLib.resolve( str, "createPreview" );
      if ( myFunction )
        {
          myFunction();
        }
    und das muss in die lib*.so eine , btw in die lib*.cpp ...
    Code:
    extern "C" Preview* createPreview()
      {
        Preview *pv = new Preview();
        pv->show();
        return pv;
      }
    ChMaster|LFreak --- Projektseite

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •