Отсутствие точек входа в USER32.dll останавливает запуск программы, C ++, VS2015
Я пишу программу на C ++, используяVS2015 (Platform Toolset v140, Target Platform 8.1) на компьютере с Windows 10, и до недавнего времени моя программа работала на Windows 7, 8 и 10 очень хорошо.
После добавления сенсорной поддержки с помощьюGetPointerInfo()
, Я получаю эту всплывающую ошибку сразу при выполнении на машинах Windows 7:
Не удалось найти точку входа с именем GetPointerInfo в USER32.dll
MS ясно заявляет, чтоGetPointerInfo()
поддерживается только в Win8 и выше, и все в порядке, но я не хочу полностью нарушать совместимость моей программы с Windows 7.
Я предполагаю, что версия Windows 7USER32.DLL
вообще не содержит функцию, но добавляет проверки во время выполнения в моей программе (т.е. только вызываетGetPointerInfo()
еслиIsWindows8OrGreater()
возвращает истину) не делает трюк.
Фактически, просто компилирую мою программу с любой ссылкой наGetPointerInfo()
нарушит совместимость с Win7, независимо от того, вызывается функция или нет. Программа даже не войдетWinMain()
, он просто бросает мне это сообщение и выходит.
Опять же, на Windows 8 и выше, все работает просто отлично.
Как мне это решить?
Я гуглил полдня, но, обладая очень небольшими знаниями о библиотеках DLL, настройках компоновщика и компилятора, я, очевидно, даже не знаю, как сформулировать свои поиски, потому что я до сих пор пустовал.
Я пробовал и многопоточные (/ MT) и многопоточные DLL (/ MD) в качестве моей библиотеки времени выполнения.
Я также попытался включить и отключить связывание на уровне функций, но результат остался прежним.