2017-10-12 622 views
1

我正在使用一個使用PIP_ADAPTER_ADDRESSES類型的文件。使用此代碼的人使用VS2013(我目前的工作是將代碼庫升級到VS2017)。 #包括這個樣子:VS2017 C++:爲什麼PIP_ADAPTER_ADDRESSES未定義?

#include <winsock2.h> // Include for security.h 
#include <security.h> // Include for EXTENDED_NAME_FORMAT 
#include <iphlpapi.h> // Include for PIP_ADAPTER_ADDRESSES 

我也得到error C2061: syntax error: identifier 'PIP_ADAPTER_ADDRESSES'在編譯的時候。這似乎是VS2017中的一個問題,但不是VS2013。

PIP_ADAPTER_ADDRESSES似乎在<IPTypes.h>中定義,其包含在<iphlpapi.h>中,但它位於#ifdef _WINSOCK2API_塊內。但是,這應該被定義,因爲我包含<winsock2.h>。這裏發生了什麼?

編輯:乍一看,它看起來像錯誤消息並不表示它是未定義的,而是有一個循環依賴與此標識符。我正在繼續調查。

回答

0

事實證明,在我的情況下有另一個文件,其中包括<iphlpapi.h>但不是<winsock2.h>,這是導致我正在處理的文件中的錯誤。出於某種原因,該文件首先在VS2017中編譯,而不是在VS2013中編譯。請確保您檢查了所有包含內容,我猜。