VCL-Styles in einer Dll



  • Hallo, ich möchte VLC-Styles auch in einer Dll einsetzen.

    Bei einer .exe kann man ja einfach in den Optionen einstellen, welche Styles man dabei hat.
    Aber bei einem Dll-Projekt muss man erst die .vsf-Datei des Styles hinzufügen dann laden und dann anzeigen.
    Nun habe ich die Datei Namens: GoldenGraphite.vsf als Resource hinzugefügt und dann wollte ich sie adden.

    Das habe ich in der main versucht:

    1.
    TStyleManager::LoadFromResource(NULL, "GoldenGraphite", L"RCDATA");
    TStyleManager::SetStyle("Golden Graphite");
    
    2.
    TStyleManager::LoadFromResource(NULL, "GoldenGraphite.vsf", L"RCDATA");
    TStyleManager::SetStyle("Golden Graphite");
    
    Nicht funktionierts, das aber schon:
    
    TStyleManager::LoadFromFile("C:\\Users\\Name\\Desktop\\GoldenGraphite.vsf");
    TStyleManager::SetStyle("Golden Graphite");
    

    Kann mir vllt jemand sagen, wie das korrekt geht?
    Anscheinend brauch ich iwie als erstes Argument das HANDLE der resource, aber wie bekommt man das...?
    thx 😃



  • Hallo

    Der Handle ist vor allem der Rückgabewert von LoadLibrary. Aber auch später solltest du mit GetModuleHandle an den Handle rankommen.

    bis bald
    akari



  • Habs jetz mal so probiert, kommt aber immernoch der Error: Stil nicht gefunden.
    Und die GoldenGraphite.vsf is als Ressource im Projekt drin.
    Habs auch mit GetModuleHandle probiert...

    TStyleManager::LoadFromResource((unsigned int)LoadLibrary(L"Name meiner dll.dll"), "GoldenGraphite.vsf", L"RCDATA");
    
    TStyleManager::SetStyle("Golden Graphite");
    
    und
    
    TStyleManager::LoadFromResource((unsigned int)LoadLibrary(L"Name meiner dll.dll"), "GoldenGraphite", L"RCDATA");
    
    TStyleManager::SetStyle("Golden Graphite");
    


  • Hallo

    Nein so kann das mit LoadLibrary nicht funktionieren. Ich weiß ja nicht wie du die DLL aus deinem Programm heraus einbindest, aber wenn du dynamisch linkst, dann solltest du selber schon einen LoadLibrary-Eintrag haben.
    Wie GetModulHandle eingesetzt werden muß, weiß ich nicht, das kannst du sicher besser im WinAPI-Forum nachfragen.

    bis bald
    akari


Anmelden zum Antworten