2016-05-04 53 views
1

J'ai construit l'exemple simple MS pour TaskDialogIndirect (voir https://msdn.microsoft.com/en-us/library/windows/desktop/bb760544(v=vs.85).aspx)appelant chargeur TaskDialogIndirect dit ordinal 345 pas trouvé

Quand je le lance, je reçois « Le 345 ordinale ne pouvait pas se trouver dans la bibliothèque de liens dynamiques COMCTL32.dll »

La page ci-dessus indique qu'il a besoin de ComCtl32.DLL version 6 mais C: \ Windows \ System32 \ ComCtl32.DLL est 5.82.7601.18201 et je ne peux pas trouver une version 6 n'importe où sur le disque. Je cours sous Windows 7 avec VS2012

TaskDialog a été ajouté dans Vista alors pourquoi n'ai-je pas la bonne version de ComCtl32.DLL ???

+1

https://msdn.microsoft.com/en-us/library/windows/ Bureau/bb773175 (v = vs.85) .aspx –

Répondre

1

Il existe deux versions de ComCtl32.dll sous Windows XP et versions ultérieures (SxS). v5.8x est la valeur par défaut, vous devez activer la v6 en raison d'éventuelles incompatibilités avec les nouveaux thèmes/styles visuels. La plupart des nouvelles fonctionnalités et commandes ont seulement été ajoutées à la version 6. Pour obtenir la version 6, vous devez utiliser add a manifest pour votre application. Il est recommandé d'incorporer le manifeste dans les ressources d'applications, mais vous pouvez également utiliser un manifeste externe; nommez simplement le fichier XML yourappname.exe.manifest.

0

Voici un bloc commun et utile de code qui devrait aider à charger les corriger les contrôles communs, comctl32.dll:

#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