Initialisieren qt-Ressourcen eingebettet in statische Bibliothek

Hab ich nächste situation: ich benötige zum erstellen von widgets im standalone-statische Bibliothek, die dann verknüpft wird mit der definitiven Anwendung (visual c++ 9.0, qt 4.5).
Diese statischen widget-Bibliothek enthält einige Ressourcen (icons), und bestehen aus einem mehrere .cpp-Dateien (jede enthält standalone-widget). Soweit ich weiß, muss ich initialisieren qt-resource-system, wenn ich Sie benutzen (Ressourcen) in der statischen Bibliothek mit aufrufen zum "Q_INIT_RESOURCE( resource_file_name )". Ich löste dies mit folgenden code (in jeder .cpp-Datei in statische Bibliothek):


#include <QAbstractButton>

namespace {
struct StaticLibInitializer
{
    StaticLibInitializer()
    {
        Q_INIT_RESOURCE(qtwidgets_custom_resources);
    }
};
StaticLibInitializer staticLibInitializer;
} 

//... widget code ....
 

Anstelle von meinem ersten Ansatz habe ich separate init.cpp Datei im static-library-Projekt mit dem code für die Initialisierung (um zu vermeiden, einschließlich der code für die Initialisierung in jeder .cpp-Datei), aber das hat nicht funktioniert.

Warum dies nicht funktioniert hat ?

Ist dieser Ansatz mit StaticLibInitializer ist sicher und portabel zwischen verschiedenen Compilern und Plattformen ?

InformationsquelleAutor cybevnm | 2009-09-08
Schreibe einen Kommentar