Происходит то, что библиотеки DLL загружаются загрузчиком приложения, и вы видите сообщения об ошибках еще до того, как ваше приложение запускается. Вы должны предотвратить это.
Вы можете поместить свое приложение в DLL и создать программу-заглушку, которая выполняет проверку ОС, как Mystical описывает в своем ответе.
Edit:
Кажется, Мистик удалил свой ответ ... Сделайте что-то вроде этого:
OSVERSIONINFO OSversion;
OSversion.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
::GetVersionEx(&OSversion);
switch(OSversion.dwPlatformId)
{
case VER_PLATFORM_WIN32_NT:
if(OSversion.dwMajorVersion >= 6)
{
// Yay, load the DLL and call entry point
}
default:
// Show unsupported OS message
}
Вы можете вызвать LoadLibrary()
, чтобы загрузить библиотеку приложения, а затем вызвать любую точку входа в нее, которую вы определили.
Примечание этот ответ содержит классный список номеров версий ОС.