Ошибки компиляции с VS-2019 - PullRequest
       67

Ошибки компиляции с VS-2019

0 голосов
/ 27 сентября 2019

Код ниже не компилируется.Я получаю две ошибки:

    _TCHAR* pStrAddress;
    ... some stuff here...
    IN_ADDR  sa;
    InetPton(AF_INET, pStrAddress, &sa);
    *pIP = sa.S_un.S_addr;

1) IN_ADDR -> ошибка C2065: 'AF_INET': необъявленный идентификатор

2) InetPton (...) -> C3861: 'InetPton': идентификатор не найден

Моя конфигурация выглядит следующим образом:

  • VS-2019 pro
  • Windows SDK 10.0.18362.0 (Последнее от 26.09.2009)
  • Когда я нажимаю F12 (Перейти к определению), в редакторе открываются следующие файлы (C: \ Program Files (x86) \ Windows Kits \ 10 \ Include \ 10.0.18362.0 \ shared \ inaddr.h иC: \ Program Files (x86) \ Windows Kits \ 10 \ Include \ 10.0.18362.0 \ um \ WS2tcpip.h).
  • Настройки проекта "C / C ++ | Общие | Дополнительные каталоги включения" имеют "Флажок «Наследовать от родительского или проекта по умолчанию» установлен.
  • Ws2_32.lib присутствует в «компоновщике | Дополнительные зависимости» (но мой вопрос не о проблеме со связью или пока не существует)
  • MyПрограмма использует Unicode и InetPton (...) расширяется до InetPtonW, что является правильным.

Для возобновления из редактора символыдоступны, но препроцессор / компилятор, похоже, не имеют одинаковых путей.Очевидно, я что-то упускаю, скорее всего, очевидно.Ваша помощь будет высоко оценена.

Спасибо!

1 Ответ

1 голос
/ 27 сентября 2019

Нашли это!Я создал небольшой проект с интересным кодом, чтобы опубликовать его в качестве примера кода, и все было хорошо.Итак, что-то должно быть очевидным в первую очередь.Тогда это поразило меня !: Предварительно скомпилированный заголовок не был первым включением.

Спасибо, ребята, за вашу помощь!

BAD код:

    #include <windows.h>
    #include <ws2tcpip.h>
    #include <stdlib.h>

    #include "pch.h"   <-- this must be the first include!!!!!!

ХОРОШО * код:

    #include "pch.h"   <-- ok, happy compiler and developer  ;)

    #include <windows.h>
    #include <ws2tcpip.h>
    #include <stdlib.h>
...