Повысить Asio DLL поднятие ошибки ws2_32.dll в Windows 2000 - PullRequest
1 голос
/ 10 июля 2009

У меня есть DLL, которая использует Boost Asio для работы в сети. Когда я связываю эту dll с приложением, работающим в Windows 2000, возникает исключение времени выполнения:

"Не удалось найти точку входа в процедуру freeaddrinfo в библиотеке динамических ссылок WS2_32.dll"

Microsoft предлагает обходной путь на http://msdn.microsoft.com/en-us/library/ms737931(VS.85).aspx,, но у меня это не сработало.

Может кто-нибудь указать мне на решение ??

Большое спасибо,

- Виджай

1 Ответ

1 голос
/ 10 июля 2009

Собираете ли вы свою dll с правильными значениями, установленными для NTDDI_VERSION и _WIN32_WINNT для Windows 2000? Вы хотите, чтобы они были установлены на 0x05000000 и 0x0500. Предполагая, что вы затем полностью перестроите свою dll, вы должны либо получить предупреждение о том, что компилятор не может найти freeaddrinfo (если вы не следовали обходному пути MS), либо он должен просто работать.

Прямо сейчас я ожидаю, что вы создаете нацеливание на более позднюю версию Windows, а заголовки позволяют вам использовать функцию, которой нет в системных библиотеках, присутствующих в системе, которую вы пытаетесь запустить. на.

...