iphlpapi / ifdef.h - PullRequest
       11

iphlpapi / ifdef.h

3 голосов
/ 18 ноября 2009

Я пытаюсь использовать iphlpapi (GetAdapterInfo) и у меня проблемы с компиляцией кода. У меня iphlpapi.h из SDK 7 и я добавил соответствующий путь для включаемых файлов в Visual Studio.

Я получаю следующую ошибку ...

c: \ program files \ microsoft sdks \ windows \ v7.0 \ include \ ifdef.h (154): ошибка C2146: синтаксическая ошибка: отсутствует ';' перед идентификатором 'NET_IFTYPE'

Строки в ifdef, где это происходит, показаны ниже.

typedef NET_LUID IF_LUID, *PIF_LUID;
typedef ULONG NET_IFINDEX, *PNET_IFINDEX;       // Interface Index (ifIndex)
typedef UINT16 NET_IFTYPE, *PNET_IFTYPE;        // Interface Type (IANA ifType) 

Ответы [ 2 ]

4 голосов
/ 02 января 2010

Я наконец понял, как заставить это работать, поэтому я помещаю это здесь для тех, кто может наткнуться на это.

Во-первых, я использую Visual C ++ версии 6.0 с 2003 SDK. Я добавил sdk в качестве первого выбора, используя TOOLS-> OPTIONS-> DIRECTORIES. Добавление include winsock2.h вызвало около 60 ошибок переопределения. Я обнаружил несколько источников, говорящих мне, что winsock2 include должен предшествовать windows.h include. Включение моего windows.h было сгенерировано для меня VC ++ в предварительно скомпилированном заголовке stdafx.h, поэтому я переместил туда включение winsock2.h. Теперь я могу скомпилировать и запустить мою программу!

2 голосов
/ 18 ноября 2009

Согласно этой странице выглядит так, как будто вам, возможно, потребуется убедиться, что winsock2.h включен первым. Я предполагаю, что он определяет некоторые из этих типов.

Кроме того, на странице MSDN для NET_LUID сказано, что для нее требуется как минимум Vista. Убедитесь, что это правда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...