Die Ordnungszahl wurde nicht gefunden - Bitte Was?
-
Hallo Leute,
ich schreibe gerade ein kleiens Testprogramm zur benutzung des TaskDialogs. Dazu habe ich den Beispielcode aus der MSDN kopiert und bekomme eine ziemlich merkwürdige Fehlermeldung zur Laufzeit: Die Ordnungszahl 345 wurde in der DLL "COMCTL32.dll" nicht gefunden.
Mein Programm sieht im Moment so aus:
#include <Windows.h> #include <Commctrl.h> #pragma comment(lib, "Comctl32.lib") void main() { int nButtonPressed = 0; TASKDIALOGCONFIG config = {0}; const TASKDIALOG_BUTTON buttons[] = { { IDOK, L"Change password" } }; config.cbSize = sizeof(config); //config.hInstance = hInst; config.dwCommonButtons = TDCBF_CANCEL_BUTTON; config.pszMainIcon = TD_WARNING_ICON; config.pszMainInstruction = L"Change Password"; config.pszContent = L"Remember your changed password."; config.pButtons = buttons; config.cButtons = ARRAYSIZE(buttons); TaskDialogIndirect(&config, &nButtonPressed, NULL, NULL); switch (nButtonPressed) { case IDOK: break; // the user pressed button 0 (change password). case IDCANCEL: break; // user canceled the dialog default: break; // should never happen } }
Diese Fehlermeldung habe ich noch nie gesehen. Ich verwende Win7 x64. Was mache ich falsch?
-
Lesen!
TaskDialogIndirect:
http://msdn.microsoft.com/en-us/library/bb760544(VS.85).aspxRequirements
Minimum supported client
Windows Vista
Minimum supported server
Windows Server 2008
Header
Commctrl.h (include Commctrl.h)
Library
Comctl32.lib
DLL
Comctl32.dll version 6Ich tippe mal:
1. Du hast kein Windows Vista, oder Windows 7
- oder -
2. Du hast deiner Mini-EXE kein Manifest für ComCtl 6.0 gegeben...
-
Er schreibt ja, dass er Win7 verwendet.
Lösung:#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
-
@Marcus Humann
Deine Zeile habe ich eingefügt. Vielen Dank das klappt!Aber wie funktionieren diese Manifestdateien? So ganz blicke ich da ehrlich gesagt noch nicht durch.
Hat mein Programm jetzt einfach eine ältere Version von der dll-Datei geladen?
-
martin richter schrieb:
Lesen!
TaskDialogIndirect:
http://msdn.microsoft.com/en-us/library/bb760544(VS.85).aspxZitat:
Requirements
Minimum supported client
Windows Vista
Minimum supported server
Windows Server 2008
Header
Commctrl.h (include Commctrl.h)
Library
Comctl32.lib
DLL
Comctl32.dll version 6Ich tippe mal:
1. Du hast kein Windows Vista, oder Windows 7
- oder -
2. Du hast deiner Mini-EXE kein Manifest für ComCtl 6.0 gegeben...marcus humann schrieb:
Er schreibt ja, dass er Win7 verwendet.
Du solltest mal lesen !
-
@WHOIS: Du hast wohl auch nicht verstanden was das mit dem Manifest zu tun hat... das solltest Du mal nachlesen!
-
WHOIS ?