Первая часть уже получена (сборка выпуска, включает распространяемые библиотеки C ++ DLL).
Вторая часть, работающая на Vista / XP, не такая уж тривиальная.
Если вы напишите программу на чистом C ++, она безоговорочно будет работать на XP и Vista. Но как только вы включаете <windows.h>
, вы вводите зависимость от минимальной версии Windows. По умолчанию сегодня все еще XP. Это означает, что вы не можете использовать любую функцию Vista или W7 напрямую, и, следовательно, ваша программа может работать на XP.
Но если вы #define WINVER 0x0600
до включения <windows.h>
, то вы можете использовать функции, специфичные для Vista. Цена, которую вы платите за , используя эти функции Vista, заключается в том, что ваша программа больше не запускается на XP. Точно так же #define WINVER 0x0601
также предоставляет вам доступ к функциям Windows 7, помимо функций XP и Vista. И снова, использование функции Windows 7 останавливает вашу работу на XP или Vista.
Существуют некоторые приемы, которые позволяют вам использовать функции Windows 7, если они доступны. По сути, все они сводятся к вызову GetProcAddress("some_windows7_function")
и каким-то образом обрабатывают случай, когда возвращается NULL.