Хорошо, так что я довольно новичок в C ++ и Windows API, и я просто пишу небольшое приложение. Я хотел, чтобы мое приложение использовало визуальные стили как в XP, Vista, так и в Windows 7, поэтому я добавил эту строку в начало моего кода:
#pragma comment(linker,"\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
Казалось, что он отлично работает на моей машине с Windows 7 и Vista. Но когда я попробовал приложение в XP, приложение не загружало какие-либо элементы управления (например, кнопки, метки и т. Д.) - даже окна сообщений не отображались.
Это изображение показывает небольшое тестовое приложение, которое я только что собрал, чтобы продемонстрировать то, что я пытаюсь объяснить: http://img704.imageshack.us/img704/2250/myapp.png
В этом тестовом приложении я не использую какой-либо необычный или сложный код. Я просто взял самый простой пример кода из библиотеки MSDN (http://msdn.microsoft.com/en-us/library/ff381409.aspx)) и добавил раздел в сообщение WM_CREATE, чтобы создать кнопку:
MyBtn = CreateWindow(L"Button", L"My Button", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE, 25, 25, 100, 30, hWnd, NULL, hInst, 0);
Но я просто не могу понять, что происходит и почему это не работает. Есть идеи, ребята? Спасибо заранее.
(Кстати, приложение работает в XP, если я удаляю секцию манифеста сверху - очевидно, без визуальных стилей. Однако я должен также упомянуть, что приложение было создано с использованием Visual C ++ 2010 Express на компьютере с Windows 7 - если что имеет значение?)