Я пытаюсь создать отдельный исполняемый файл простого приложения Win32, которое должно работать как в Windows XP, так и в Windows Vista / 2008.
Из-за некоторых изменений в работе Vista необходимо выполнить некоторые дополнительные вызовы Win32 API, чтобы программа работала правильно, как в XP.
В настоящее время я определяю, работает ли приложение в версии Windows, более новой, чем XP, и при необходимости вызываю дополнительные функции win32. Это отлично работает при работе в Vista и Server 2008, но не работает при работе в Windows XP.
В Windows XP при запуске программы появляется сообщение об ошибке: Не удалось найти точку входа в процедуру ShutdownBlockReasonCreate в библиотеке динамических ссылок USER32.DLL. Это происходит до того, как начинает выполняться любой мой код, и ни один из путей кода при работе на XP не должен вызывать эту функцию.
Мне бы очень хотелось иметь только один исполняемый файл, который работает как на XP, так и на Vista. Если возможно, я не хочу иметь условную компиляцию и иметь два исполняемых файла.
Как лучше всего решить эту проблему?