Программа C ++, построенная на Windows 7 с VS2012 / w Update 3, не работает на WinXP SP3

У меня есть программа, которую я скомпилировал в Windows 7 с Visual Studio 2012 Update 3. Я выбрал набор инструментов платформы «Visual Studio 2012 — Windows XP (v110_xp)», когда собирал ее. Тем не менее, когда я пытаюсь запустить двоичный файл в Windows XP с пакетом обновления 3, я получаю следующую ошибку:

«Не удалось найти точку входа в процедуру inet_ntop в библиотеке динамических ссылок WS2_32.DLL.»

Теперь я почти уверен, что знаю, что означает эта ошибка: это означает, что загрузчик DLL не смог найти функцию inet_ntop () в WS2_32.DLL, которая находится в окне WinXP. Зная, что это будет относиться только к признаку проблемы, а не к источнику, я скопировал файл WS2_32.DLL из коробки Win7 в тот же каталог, в котором находится файл EXE на коробке WinXP. Я получил эту ошибку, только чтобы заменить ее на аналогичную ошибку, но на этот раз, ссылаясь на функцию, найденную в MSVCRT.DLL.

Как ни странно, копирование MSVCRT.DLL из окна Win7 в окно WinXP на этот раз не дало мне пропустить ошибку.

Кто-нибудь знает, что мне нужно сделать, чтобы бинарный файл работал на WinXP? Если дело дошло до этого, я установлю среду разработки WinXP на виртуальной машине и просто сделаю сборки оттуда. На данный момент это большая работа, поэтому я бы предпочел просто продолжать сборку на моем Win7-боксе.

Спасибо!

2

Решение

По данным MSDN inet_ntop() доступно только для Windows Vista и более поздних версий.

Если вам нужно работать только с IPv4, вы мог использование inet_ntoa(), или, если это не удастся, вы можете использовать функции Winsock WSAAddressToString() а также WSAStringToAddress() как это упоминается в замечания раздел inet_ntoa() документация:

Скриншот

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]