Wo muss manifestdependency/InitCommonControls... stehen? DLL, Applikation? Beides?



  • Hi!

    Für XP Style Controls:

    Wenn ich eine DLL habe, welche einen Dialog anzeigt, und diese DLL in einer Anwendung genutzt wird, wo muss ich dann /manifestdependency: linken und InitCommonControls... aufrufen? In der DLL? In der Anwendung? In beiden?

    Unterschiede early/late binding?

    Und wenn die Anwendung auch einen Dialog anzeigt, reicht es dann, wenn die DLL linkt/Init.. aufruft?

    Danke euch!



  • du musst die manifest nur einmal zum ganzen projekt dazulinken. Und du brauchst auch nur ein Aufruf von InitCommonControls() und zwar am besten in der WinMain



  • Also reicht es in der DLL? Kann ich mir nicht so ganz vorstellen, aber ok.

    Weil wenn ich die DLL nutze, möchte ich in der Anwendung eigentlich nicht noch zusätzlich etwas machen, wenn ich dort zB. garkein Fenster brauche.



  • in der anwendung in der du dein fenster erstellst linkst du auch die manifest hinzu, also wenn du in der dll ein fenster erstellst dann linke dort auch die manifest hinzu



  • Aha, jetzt bin ich aber nicht gescheiter.
    Ok, nochmals von Anfang an:

    1. Wenn ich in der DLL ein Fenster anzeige, muss ich dann in der DLL linken/Init...aufrufen? Oder reicht es, dies in der Anwendung zu tun?

    2. Wenn ich in der Anwendung ein Fenster anzeige, muss ich dann in der Anwendung linken/Init...aufrufen? Oder reicht es, dies in der DLL zu tun?

    Mir geht es eigentlich konkret darum, eine DLL zu haben, welche ein Fenster anzeigt, aber ohne dass ich in der Anwendung noch etwas tun muss.
    Eine unabhängige DLL halt.

    Jetzt verstanden?

    😕



  • Achso, mit "anwendung" meinst du dll und exe... dann wäre ja alles klar.



  • dann link der dll die manifest hinzu und rufe InitCommonControls() von dort aus auf. Dann muss deine Anwendung nichts mehr tun



  • Ok, noch eine Nebenfrage:

    /manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'"
    

    Kann ich processorArchitecture immer auf x86 lassen, egal ob das Programm jetzt auf einem AMD, AMD64 oder irgendeinem Intel läuft, vorausgesetzt ich kompiliere das Programm win32 (@x86?) ?

    Ich kenn mich da voll nicht aus...



  • Es funktioniert nicht. Wenn ich in der Anwendung nicht /manifestdependency: definiere, habe ich keine XP Controls, obwohl ich es in der DLL definiere!

    Ich muss es in der Anwendung definieren, damit es funktioniert.

    Geht es nicht doch noch anders?

    😕



  • Nein.



  • Ok, ich warte aber um sicher zu gehen noch weitere Antworten ab.


Anmelden zum Antworten