Visual Studio не может ссылаться на 32-битную версию, но может на 64-битную.

Я создал проект и, как всегда, создал 2 платформы (64-битную и 32-битную) (это DLL). Я написал код и протестировал его, и все прошло отлично (я всегда тестирую на 64-битной конфигурации), но, поскольку я хотел протестировать свою 32-битную виртуальную машину XP, я столкнулся с проблемой LINK.

Я использую API WSASelectEvent в своем коде (как и многие другие API WSA/Winsock), но в 32-битной конфигурации и только в 32-битной конфигурации компоновщик отказывается находить _WSASelectEvent.

Я получаю известную ошибку LNK2001:

"ошибка LNK2001: неразрешенный внешний символ _WSAEventSelect"

Я обязательно ссылаюсь на ws2_32.lib и обязательно включаю winsock2.h, так как я использую другие API (такие как WSAStartup и WSACleanup, а также структуры и многое другое в моем коде, очевидно, для использования winsockets).

поэтому, зная, что мне нравится возиться с конфигурацией в середине работы (это довольно небольшой проект, ничего особенного), я решил, что лучше пойти наверняка, и создал новый проект в Visual Studio, поместил код и создал новую платформу для компиляции ( с графическим интерфейсом, конечно), но у меня те же результаты.

Я в течение 2-3 часов занимался серфингом в сети без каких-либо исправлений, и я даже пытался сравнить командную строку компиляции и командную строку ссылки, которые, кроме обычных папок /MACHINE:x64/x86 и целевых папок, абсолютно одинаковы.

может быть вы знаете эту проблему или ее решение?

ПРИМЕЧАНИЕ: intellisense предупредит меня об этом, и Visual Studio не предложит список параметров, когда WSASelectEvent( написано, но «Перейти к определению» обязательно приведет меня к Winsock2.h.


person user340495    schedule 17.09.2013    source источник
comment
Возможно, это проблема включения файла заголовка. winsock vs winsock2.   -  person Dayal rai    schedule 17.09.2013
comment
Я уже проверил это, в отчаянии я попытался включить каждую перестановку этих двух ...   -  person user340495    schedule 17.09.2013


Ответы (1)


РЕШЕНО,

ок так видимо я накосячил с включением собственных библиотек. после включения winsock2.h в пару других мест мне удалось скомпилировать его и на 32-битной версии.

Спасибо за ваше время!

person user340495    schedule 17.09.2013