Anwendung im XP-Style



  • Hab ich hier gesehen : http://www.winapi.net/index.php?inhalt=t8
    Klappt mit Microsoft Visual C++ 6 jedoch nicht mit Visual Studio 2005.

    Bekomme Error : R6034



  • Wenn Du die DLL Version der CRT verwendest, dann musst Du noch das Manifest für die CRT-DLLs einbinden!!!

    Aber bei VC2005 würde ich eher den Weg über das pragma gehen um eine zusätzliches Manifest ainzubetten, da Du sonst auch die CRT/MFC/ATL Manifests von Hand reinmachen müsstest.
    Also: Lass die Projekteinstellungen unverändert und füge in einem Deiner cpp-Dateien noch folgendes ein:

    #if defined _M_IX86
    #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
    #elif defined _M_IA64
    #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
    #elif defined _M_X64
    #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
    #else
    #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
    #endif
    

  • Mod

    Die Geschichte mit den Manifesten hat sich etwas geändert. Die Manifeste werden jetzt durch einen Manifest Compiler gesamelt und kompiliert. Das Prinzip ist jedoch das selbe geblieben. Wenn Du ein neues Projekt mit dem Wizard anlegst werden entsprechende Manifest Zeilen in die stdafx.h/cpp eingebaut.
    Du hast ein ganz anderes Problem. Du hast die Standardmanifeste die notwendig sind um die neue CRT über SxS (Side by Side) zu laden deaktiviert oder entfernt.
    Das steht aber auch in der MSDN zu diesem Runtime Fehler:
    http://msdn2.microsoft.com/en-us/library/ms235560(vs.80).aspx

    Die CRT über eine DLL lässt sich nur noch mit entsprechedem Manifest verwenden:
    Siehe auch Jochen Klambach Blog!



  • Jo klappt alles klar. Guten Rutsch 🙂


Anmelden zum Antworten