Ergebnis 1 bis 2 von 2

Thema: [C++] In DLL mit Objekten aus Hauptprogramm arbeiten

  1. #1

    [C++] In DLL mit Objekten aus Hauptprogramm arbeiten

    Folgendes Szenario: ich habe ein C++ Programm, das diverse Plugins aus DLLs lädt. Das funktioniert soweit schon ganz gut. Allerdings sollen Diese Plugins von sich aus auch mit Objekten aus dem Hauptprogramm arbeiten können. Beispielsweise das globale Logger-Objekt mitverwenden. Fällt jemandem was besseres ein, als eine Art Wrapperklasse, die entsprechende Funktionspointer mitbekommt?

    In etwa so (ungetestet)
    Code (C++):
    #ifndef LOGGERWRAPPER_H
    #define LOGGERWRAPPER_H
     
    // Erspart mir, immer class Logger zu schreiben, wenn ich den Logger selbst nicht includen will
    typedef class Logger Logger;
     
    class LoggerWrapper
    {
    private:
        void (Logger::*logPointer)(char *message);
        Logger *logger;
    public:
        LoggerWrapper(Logger *logger)
        {
             this->logger = logger;
             logPointer = &Logger::LogMessage; // Klappt das in dem Kontext überhaupt? Im Zweifelsfall Pointer public machen und von außen setzen
        }
     
        void LogMessage(char *message)
        {
            (logger->*logPointer)(message);
        }
    };
     
    #endif // LOGGERWRAPPER_H


    Wie gesagt, ist nicht getestet und ich bin mir auch nicht sicher, ob das so tut, wie ich mir das denke.

  2. #2
    Nevermind: virtuelle Methoden funktionieren einwandfrei. Einmal close bitte.

Berechtigungen

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