2008-11-07 7 views
0

Я пытаюсь создать Apache Axis2/C (на самом деле я строю WSO2 WSF/C++-оболочку для него), и он продолжает давать мне ошибку, когда она встречается с символом SO_EXCLUSIVEADDRUSE. Это опция сокета, и MSDN говорит, что она должна быть доступна. Я использую MSVC++ 6.0 на Win Server 2k3. У меня нет выбора о компиляторе или ОС ... если бы я был на linux, я бы уже сделал: PНеизвестный идентификатор SO_EXCLUSIVEADDRUSE при создании Apache Axis2/C

Я посмотрел на установку VS2005 и обнаружил, что он содержит #define для этой константы в winsock2.h. Его нет в winsock2.h, что у меня есть для MSVC6. Кроме того, в VS2005 он находится в папке PlatformSDK внутри каталога VS2005, в то время как для MSVC6 не существует такой директории. Почему этот символ отсутствует? Как я могу его получить? Я соблазн просто скопировать его, но кто знает, что еще я буду пропустить по дороге ... Любые идеи?

ответ

1

Начиная с Visual Studio .Net 2003, Microsoft меняет способ доставки PlatformSDK. Это позволяет компилятору C/C++ использовать PlatformSDK, кроме поставляемой в комплекте версии с пакетом VC.

Вы можете установить PlatformSDK для Windows Server 2k3, но последний SDK, который будет работать с VC 6.0, - это выпуск в феврале 2003 года, который недоступен на веб-сайте Microsoft.

Таким образом, вы можете просто скопировать #define в код перед использованием SO_EXCLUSIVEADDRUSE. Он должен работать и поддерживаться Win2k3.

 Смежные вопросы

  • Нет связанных вопросов^_^